import { MethodContext, ParameterAst, ParameterContext, MethodAst, PropertyAst, PropertyContext } from 'ims-decorator'; /** * 权限 */ export interface Handler { (user: any): boolean; } export declare type RoleOptions = string | string[] | Handler; export declare const RoleMetadataKey = "RoleMetadataKey"; export declare const Role: (metadataDef?: (string & { sourceRoot?: string; imports?: any[]; providers?: import("../../../ims-decorator/lib").Provider[]; }) | (string[] & { sourceRoot?: string; imports?: any[]; providers?: import("../../../ims-decorator/lib").Provider[]; }) | (Handler & { sourceRoot?: string; imports?: any[]; providers?: import("../../../ims-decorator/lib").Provider[]; })) => (target: any, propertyKey?: string | symbol, descriptor?: number | TypedPropertyDescriptor) => any; export declare function isRoleMethodAst(val: MethodAst): val is MethodAst; export declare class RoleMethodAst extends MethodContext { } export declare function isRolePropertyAst(val: PropertyAst): val is PropertyAst; export declare class RolePropertyAst extends PropertyContext { } export declare function isRoleParameterAst(val: ParameterAst): val is ParameterAst; export declare class RoleParameterAst extends ParameterContext { } export interface RoleParameter { id: number; username: string; role: string; }