import { IComposerDone } from "./Composer"; import { SecurityProviderRule } from "./models/index"; export interface ILogicalOperatorSelector extends IComposerDone { and: () => ICompletableCombinableSecurityProviderComposer; or: () => ICompletableCombinableSecurityProviderComposer; } export interface ICombinableSecurityProviderComposer { /** Add a security provider which access rules must be fullfilled. */ hasAccessToProvider: (securityProviderId: string) => ILogicalOperatorSelector; } export interface ICompletableCombinableSecurityProviderComposer extends ICombinableSecurityProviderComposer, IComposerDone { } export declare class SecurityProviderCombinableRuleComposer implements ICombinableSecurityProviderComposer, ILogicalOperatorSelector { private newRuleCb; private composerForDone; private rules; private selectedLogicalOperator?; constructor(newRuleCb: (allRules: Array) => void, composerForDone: T); done: () => T; hasAccessToProvider: (securityProviderId: string) => this; and: () => this; or: () => this; }