import { IUserPermissionDesc, UserPermissionClass, UserPermissionConstructor, UserPermissionSerialize } from "../bridge/define.permission"; export declare type IPermDataArg = UserPermissionSerialize | UserPermissionClass; export declare function permDataObject(perm: IPermDataArg): UserPermissionSerialize; export declare abstract class AbstractUserPermission implements UserPermissionClass { protected _scope: string; protected _name: string; protected _available: number; protected _expire: number; static readonly DEFAULT_SCOPE: string; static readonly ANY_SCOPE: string; readonly abstract project: string; readonly description: IUserPermissionDesc; constructor(scope?: string); /** @deprecated */ readonly className: string; readonly permName: string; readonly available: number; setAvailable(v: number | Date): void; readonly expire: number; setExpire(v: number | Date): void; readonly scope: string; setScope(scope: string): void; readonly status: number; toJSON(): UserPermissionSerialize; } export declare abstract class GlobalUserPermission extends AbstractUserPermission { readonly project: any; } export declare function createClassDynamic(name: string, base: UserPermissionConstructor): UserPermissionConstructor; export declare function createProjectAbstractPermission(projectName: string): UserPermissionConstructor;