export declare class PolicyItem { private name; static PolicyCounter: number; private static policies; policyValidator: any; static add(policy: PolicyItem): void; static get(policyName: string): TPolicy; static has(policyName: string): boolean; static remove(policyName: string): void; static setPolicyDescriptor(contextClass: any, propertyKey: string, next: (...args: any[]) => void, failedResponseCode: number, async?: boolean): (...applyArgs: any[]) => any; static applyAsyncPolicy(policies: Array, contextClass: any, propertyName: string, applyArgs: Array, failedResponseCode?: number): Promise; static applySyncPolicy(policies: Array, contextClass: any, propertyName: string, applyArgs: Array, failedResponseCode?: number): boolean; constructor(policyValidator: TPolicy, name?: string); setPolicyValidator(guardianValidator: TPolicy): void; } export declare type TPolicyResults = true | any; export declare type TPolicyPayload = { functionArgs?: any[]; policyMeta?: any[]; }; export declare type TPolicy = (policyData?: TPolicyPayload) => (Promise | TPolicyResults);