/// <reference types="react" />
export declare type ProgressPermissionsRefType<T extends string> = React.MutableRefObject<T[]>;
export declare type PermissionsContainerType<T extends string> = {
    allowedPermissions: T[];
    checkedPermissions: T[];
};
export declare type ActionStatusType<T extends string> = {
    action: T;
    allowed: boolean;
    checked: boolean;
};
declare type CheckResultItem<T extends string> = {
    action: T;
    allowed?: boolean;
};
export declare type AllowedLogicType<T extends string = string> = (allowed: T[], denied: T[], payload: T[]) => boolean;
export declare type CheckResult<T extends string> = CheckResultItem<T>[];
export declare type OnCheckPermissionsType<T extends string = string> = (actions: T[]) => Promise<CheckResult<T>> | CheckResult<T>;
export {};
