import { MemoryListSearchCache, SubmitValue } from '@oinone/kunlun-engine';
import { OioTreeNode } from '@oinone/kunlun-vue-ui-common';
import { FormM2MTreeFieldWidget } from '../../../field';
import { TreeData, TreeNodeMetadata } from '../../../typing';
import { ActionPermissionNode, AnyPermissionNode, AuthResourcePermissionItem, HomepagePermissionNode, MenuPermissionNode, ModulePermissionNode, PermissionNode } from '../../types';
declare type TreeNodeSearchFilter = (node: OioTreeNode<TreeData>, keywords: string) => boolean;
export declare class FormResourcePermissionFieldWidget extends FormM2MTreeFieldWidget {
    protected initCheckedKeysCache: MemoryListSearchCache<string, string> | undefined;
    protected generatorDefaultTreeDefinition(props: any): TreeNodeMetadata | undefined;
    protected get checkStrictly(): boolean;
    protected onChecked(node: OioTreeNode<TreeData>, selected: boolean): Promise<void>;
    protected nodeCheckedAll(node: OioTreeNode<TreeData>): boolean;
    onNodeCheckedAll(node: OioTreeNode<TreeData>, selected: boolean): void;
    submit(submitValue: SubmitValue): Promise<Record<string, unknown> | undefined>;
    protected reloadBackfillDataByValue(): Promise<void>;
    protected onSearch(keywords: string): void;
    protected generatorSearchRootNodes(parentNode: OioTreeNode<TreeData>, nodes: OioTreeNode<TreeData>[], keywords: string, filter?: TreeNodeSearchFilter): {
        expandedKeys: string[];
        nodes: OioTreeNode<TreeData>[];
    };
    protected defaultSearchRootNodesFilter(node: OioTreeNode<TreeData>, keywords: string): boolean;
    protected generatorSearchRootNodes0(expandedKeys: string[], parentNode: OioTreeNode<TreeData>, nodes: OioTreeNode<TreeData>[], keywords: string, filter: TreeNodeSearchFilter): OioTreeNode<TreeData>[];
    protected resolvePermissionNodes(permissionNodes: AnyPermissionNode[], parent?: OioTreeNode<TreeData>): OioTreeNode<TreeData>[];
    protected resolveModulePermissionNode(node: ModulePermissionNode, parent?: OioTreeNode<TreeData>): OioTreeNode<TreeData> | undefined;
    protected resolveHomepagePermissionNode(node: HomepagePermissionNode, parent?: OioTreeNode<TreeData>): OioTreeNode<TreeData> | undefined;
    protected resolveMenuPermissionNode(node: MenuPermissionNode, parent?: OioTreeNode<TreeData>): OioTreeNode<TreeData> | undefined;
    protected resolveActionPermissionNode(node: ActionPermissionNode, parent?: OioTreeNode<TreeData>): OioTreeNode<TreeData> | undefined;
    protected resolvePermissionNode(node: PermissionNode, parent?: OioTreeNode<TreeData>): OioTreeNode<TreeData> | undefined;
    protected generatorResourcePermissionItem(node: PermissionNode): AuthResourcePermissionItem;
    protected resolveCheckedKeys(treeNode: OioTreeNode<TreeData>, node: PermissionNode): void;
    protected generatorTreeNode(key: string, value: TreeData, parent?: OioTreeNode<TreeData>): OioTreeNode<TreeData>;
}
export {};
