import type { Feature } from './Feature';
/**
 *
 * @export
 * @interface Permission
 */
export interface Permission {
    /**
     * The group that this permission belongs to.
     * @type {number}
     * @memberof Permission
     */
    readonly parent?: number;
    /**
     *
     * @type {Feature}
     * @memberof Permission
     */
    feature?: Feature;
    /**
     * The localized name of the object.
     * @type {{ [key: string]: string; }}
     * @memberof Permission
     */
    readonly name?: {
        [key: string]: string;
    };
    /**
     * All parents of this permission up to the root of the permission tree.
     * @type {Array<number>}
     * @memberof Permission
     */
    readonly pathToRoot?: Array<number>;
    /**
     *
     * @type {boolean}
     * @memberof Permission
     */
    readonly webAppEnabled?: boolean;
    /**
     * The localized description of the object.
     * @type {{ [key: string]: string; }}
     * @memberof Permission
     */
    readonly description?: {
        [key: string]: string;
    };
    /**
     * A unique identifier for the object.
     * @type {number}
     * @memberof Permission
     */
    readonly id?: number;
    /**
     * Whether this is a leaf in the tree of permissions, and not a group.
     * @type {boolean}
     * @memberof Permission
     */
    readonly leaf?: boolean;
    /**
     * The localized name of the object.
     * @type {{ [key: string]: string; }}
     * @memberof Permission
     */
    readonly title?: {
        [key: string]: string;
    };
    /**
     * Whether this is a permission group.
     * @type {boolean}
     * @memberof Permission
     */
    readonly group?: boolean;
    /**
     * Whether users with this permission are required to enable two-factor authentication.
     * @type {boolean}
     * @memberof Permission
     */
    readonly twoFactorRequired?: boolean;
}
/**
 * Check if a given object implements the Permission interface.
 */
export declare function instanceOfPermission(value: object): value is Permission;
export declare function PermissionFromJSON(json: any): Permission;
export declare function PermissionFromJSONTyped(json: any, ignoreDiscriminator: boolean): Permission;
export declare function PermissionToJSON(json: any): Permission;
export declare function PermissionToJSONTyped(value?: Omit<Permission, 'parent' | 'name' | 'pathToRoot' | 'webAppEnabled' | 'description' | 'id' | 'leaf' | 'title' | 'group' | 'twoFactorRequired'> | null, ignoreDiscriminator?: boolean): any;
