export declare type Action = {
    labels: string[];
    name: string;
    description: string;
    resource: string;
    type: string;
};
export declare type Role = {
    id: string;
    name: string;
    description: string;
    permissions: Action[];
};
export declare type Config = {
    actions: Action[];
};
export declare type TypeConfig = {
    resources: any[];
    fingerprint(resource): string;
};
export declare const api: {
    init: (config: Config) => Config;
    config: () => Config;
    any: string;
    notype: string;
    unknown: Action;
    list: () => Action[];
    asPermission: (a: Action) => {
        labels: string[];
        resource: string;
        type: string;
    };
    isLike: (a: Action, b: Action) => boolean;
    isImpliedBy: (a: Action, b: Action) => boolean;
    isSame: (a: Action, b: Action) => boolean;
    isTemplate: (a: Action) => boolean;
    map: (array: Action[]) => Action[];
    specialise: (a: Action, id: string) => Action;
};
export default api;
