import { View, Element } from '..';
interface Role {
    DomainName: string;
    RoleId: string;
    RoleName: string;
    RoleStatus: number;
}
interface RoleItem extends Role {
    permission?: Permission;
    checked?: Boolean;
    toggling?: Boolean;
}
interface Permission {
    DomainName: string;
    PermissionId: string;
    PermissionValue: string;
}
export declare class Nuims {
    /**
     * App Name
     */
    readonly domainName: string;
    /**
     * 上报权限后的资源id
     */
    readonly resourceId: string;
    /**
     * view
     */
    readonly view: View;
    /**
     * element
     */
    readonly element: Element;
    /**
     * @param source 需要合并的部分参数
     */
    constructor(source?: Partial<Nuims>);
    getInitRoles(): Promise<RoleItem[]>;
    /**
     * 绑定dev权限
     * 用于用户创建页面、子页面的时候
     * @returns
     */
    attachDevRole(): Promise<void>;
    handleDefaultPermisssionForRole(): Promise<void>;
    /**
     * 获取当前资源
     */
    getResource(): Promise<any>;
    /**
     * 创建资源
     */
    createResource(): Promise<any>;
    /**
     * 批量创建资源，创建当前 View / Element 及其子页面/元素关联的所有资源
     */
    createResources(): Promise<void>;
    /**
     * 批量创建资源，创建 Element 及其子元素关联的所有资源
     */
    createElementResources(element: Element): void;
    /**
     * 删除当前 View / Element 及其子页面/元素关联的所有资源
     */
    deleteResources(): void;
    /**
     * 批量删除资源，删除 View 及其子页面关联的所有资源
     */
    deleteViewResources(view: View): void;
    /**
     * 批量删除资源，删除 Element 及其子元素关联的所有资源
     */
    deleteElementResources(element: Element): void;
    /**
     * 根据 resourceValue 获取关联资源
     */
    getResourceFromResourceValue(resourceValue: string): Promise<any>;
    /**
     * 根据 resourceValue 创建关联资源
     */
    createResourceFromResourceValue(resourceValue: string): Promise<void>;
    /**
     * 根据 resourceValue 删除关联资源
     */
    deleteResourceFromResourceValue(resourceValue: string): Promise<void>;
    /**
     * 根据 resourceValue 编辑关联资源
     */
    editResourceFromResourceValue(resourceValue: string): Promise<void>;
    /**
     * 根据 Permission 获取关联资源
     */
    getResourcesFromPermission(permission: Permission): Promise<any>;
    getResourceValueFromElement(element: Element): string;
    getResourceValue(): string;
    getDescription(): string;
    /**
     * 获取角色列表
     */
    getRoles(): Promise<any>;
    /**
     * 1.创建角色
     * 2.创建角色的默认权限
     * 3.绑定角色和权限
     */
    createDefaultRoleFromRoleName(roleName: string): Promise<void>;
    getDefaultPermissionForRole(role: Role): Promise<any>;
    getPermissionResources(permission: Permission): any;
    /**
     * 为角色创建默认权限
     */
    createDefaultPermission(role: Role): Promise<any>;
    /**
     * 关联角色和权限
     */
    bindRolesAndPermissions(role: Role, permission: Permission): any;
    /**
     * 绑定权限和资源
     */
    attachPermissionResourceAction(): Promise<void>;
    /**
     * 解绑权限和资源
     */
    attachPermissionResource(permissionId: string): Promise<void>;
    detachPermissionResource(permissionId: string): Promise<void>;
}
export default Nuims;
