@omnia/tooling-composers
Version:
Provide tooling to work with manifest things.
26 lines (25 loc) • 1.15 kB
TypeScript
import { IComposerDone } from "./Composer";
import { SecurityProviderRule } from "./models/index";
export interface ILogicalOperatorSelector<T> extends IComposerDone<T> {
and: () => ICompletableCombinableSecurityProviderComposer<T>;
or: () => ICompletableCombinableSecurityProviderComposer<T>;
}
export interface ICombinableSecurityProviderComposer<T> {
/**
Add a security provider which access rules must be fullfilled.
*/
hasAccessToProvider: (securityProviderId: string) => ILogicalOperatorSelector<T>;
}
export interface ICompletableCombinableSecurityProviderComposer<T> extends ICombinableSecurityProviderComposer<T>, IComposerDone<T> {
}
export declare class SecurityProviderCombinableRuleComposer<T> implements ICombinableSecurityProviderComposer<T>, ILogicalOperatorSelector<T> {
private newRuleCb;
private composerForDone;
private rules;
private selectedLogicalOperator?;
constructor(newRuleCb: (allRules: Array<SecurityProviderRule>) => void, composerForDone: T);
done: () => T;
hasAccessToProvider: (securityProviderId: string) => this;
and: () => this;
or: () => this;
}