export interface PrincipalPlainObject {
    /**
     * 用户 ID
     */
    id: string;
    /**
     * 用户角色名称列表
     */
    roles: string[];
    /**
     * 用户权限列表
     */
    permissions: string[];
}
export interface Principal {
    /**
     * 返回用户 ID
     *
     * @return 用户 ID
     */
    getId(): string;
    /**
     * 设置用户 ID
     *
     * @param id
     * 		用户 ID
     */
    setId(id: string): void;
    /**
     * 返回用户角色名称列表
     *
     * @return 用户角色名称列表
     */
    getRoles(): string[];
    /**
     * 设置用户角色
     *
     * @param roleNames
     * 		用户角色名称列表
     */
    setRoles(roleNames: string[]): void;
    /**
     * 添加用户角色
     *
     * @param roleName
     * 		用户角色名称
     */
    addRole(roleName: string): void;
    /**
     * 批量添加用户角色
     *
     * @param roleNames
     * 		用户角色名称列表
     */
    addRoles(roleNames: string[]): void;
    /**
     * 返回用户权限列表
     *
     * @return 用户权限列表
    */
    getPermissions(): string[];
    /**
     * 设置用户权限
     *
     * @param permissions
     * 		用户权限列表
     */
    setPermissions(permissions: string[]): void;
    /**
     * 添加用户权限
     *
     * @param permission
     * 		用户权限
     */
    addPermission(permission: string): void;
    /**
     * 批量添加用户权限
     *
     * @param permissions
     * 		用户权限列表
     */
    addPermissions(permissions: string[]): void;
}
export declare class DefaultPrincipal implements Principal {
    private id;
    private roles;
    private permissions;
    constructor(id: string, roles: string[], permissions: string[]);
    getId(): string;
    setId(id: string): void;
    getRoles(): string[];
    setRoles(roleNames: string[]): void;
    addRole(roleName: string): void;
    addRoles(roleNames: string[]): void;
    getPermissions(): string[];
    setPermissions(permissions: string[]): void;
    addPermission(permission: string): void;
    addPermissions(permissions: string[]): void;
}
