import type { Account } from './Account'; import type { Permission } from './Permission'; import type { RoleState } from './RoleState'; /** * * @export * @interface Role */ export interface Role { /** * The permissions granted to users with this role. * @type {Set} * @memberof Role */ readonly permissions?: Set; /** * The name used to identify the role. * @type {{ [key: string]: string; }} * @memberof Role */ readonly name?: { [key: string]: string; }; /** * The date and time when the object is planned to be permanently removed. If the value is empty, the object will not be removed. * @type {Date} * @memberof Role */ readonly plannedPurgeDate?: Date; /** * A unique identifier for the object. * @type {number} * @memberof Role */ readonly id?: number; /** * * @type {RoleState} * @memberof Role */ state?: RoleState; /** * The version is used for optimistic locking and incremented whenever the object is updated. * @type {number} * @memberof Role */ readonly version?: number; /** * * @type {Account} * @memberof Role */ account?: Account; /** * Whether users with this role are required to use two-factor authentication. * @type {boolean} * @memberof Role */ readonly twoFactorRequired?: boolean; } /** * Check if a given object implements the Role interface. */ export declare function instanceOfRole(value: object): value is Role; export declare function RoleFromJSON(json: any): Role; export declare function RoleFromJSONTyped(json: any, ignoreDiscriminator: boolean): Role; export declare function RoleToJSON(json: any): Role; export declare function RoleToJSONTyped(value?: Omit | null, ignoreDiscriminator?: boolean): any;