import { CSSProperties, ExtractPropTypes, PropType } from 'vue';
export interface JSONFlattenOptions {
    key?: string;
    index?: number;
    showComma: boolean;
    length: number;
    type: 'content' | 'objectStart' | 'objectEnd' | 'objectCollapsed' | 'arrayStart' | 'arrayEnd' | 'arrayCollapsed';
}
export type JSONDataType = string | number | boolean | unknown[] | Record<string, unknown> | null;
export interface JSONFlattenReturnType extends JSONFlattenOptions {
    content: string | number | null | boolean;
    level: number;
    path: string;
}
export interface NodeDataType extends JSONFlattenReturnType {
    id: number;
}
export declare const treeNodePropsPass: {
    data: {
        type: PropType<JSONDataType>;
        default: null;
    };
    rootPath: {
        type: StringConstructor;
        default: string;
    };
    indent: {
        type: NumberConstructor;
        default: number;
    };
    showLength: {
        type: BooleanConstructor;
        default: boolean;
    };
    showDoubleQuotes: {
        type: BooleanConstructor;
        default: boolean;
    };
    renderNodeKey: PropType<(opt: {
        node: NodeDataType;
        defaultKey: string;
    }) => unknown>;
    renderNodeValue: PropType<(opt: {
        node: NodeDataType;
        defaultValue: string;
    }) => unknown>;
    renderNodeActions: {
        type: PropType<boolean | ((opt: {
            node: NodeDataType;
            defaultActions: {
                copy: () => void;
            };
        }) => unknown)>;
        default: undefined;
    };
    selectableType: PropType<"" | "multiple" | "single">;
    showSelectController: {
        type: BooleanConstructor;
        default: boolean;
    };
    showLine: {
        type: BooleanConstructor;
        default: boolean;
    };
    showLineNumber: {
        type: BooleanConstructor;
        default: boolean;
    };
    selectOnClickNode: {
        type: BooleanConstructor;
        default: boolean;
    };
    nodeSelectable: {
        type: PropType<(node: NodeDataType) => boolean>;
        default: () => boolean;
    };
    highlightSelectedNode: {
        type: BooleanConstructor;
        default: boolean;
    };
    showIcon: {
        type: BooleanConstructor;
        default: boolean;
    };
    theme: {
        type: PropType<"dark" | "light">;
        default: string;
    };
    showKeyValueSpace: {
        type: BooleanConstructor;
        default: boolean;
    };
    editable: {
        type: BooleanConstructor;
        default: boolean;
    };
    editableTrigger: {
        type: PropType<"click" | "dblclick">;
        default: string;
    };
    onNodeClick: {
        type: PropType<(node: NodeDataType) => void>;
    };
    onNodeMouseover: {
        type: PropType<(node: NodeDataType) => void>;
    };
    onBracketsClick: {
        type: PropType<(collapsed: boolean, node: NodeDataType) => void>;
    };
    onIconClick: {
        type: PropType<(collapsed: boolean, node: NodeDataType) => void>;
    };
    onValueChange: {
        type: PropType<(value: boolean, path: string) => void>;
    };
};
export declare const treeNodeProps: {
    readonly node: {
        readonly type: PropType<NodeDataType>;
        readonly required: true;
    };
    readonly collapsed: BooleanConstructor;
    readonly checked: BooleanConstructor;
    readonly style: {
        readonly type: PropType<CSSProperties>;
        readonly default: undefined;
    };
    readonly onSelectedChange: {
        readonly type: PropType<(node: NodeDataType) => void>;
        readonly default: undefined;
    };
    readonly data: {
        type: PropType<JSONDataType>;
        default: null;
    };
    readonly rootPath: {
        type: StringConstructor;
        default: string;
    };
    readonly indent: {
        type: NumberConstructor;
        default: number;
    };
    readonly showLength: {
        type: BooleanConstructor;
        default: boolean;
    };
    readonly showDoubleQuotes: {
        type: BooleanConstructor;
        default: boolean;
    };
    readonly renderNodeKey: PropType<(opt: {
        node: NodeDataType;
        defaultKey: string;
    }) => unknown>;
    readonly renderNodeValue: PropType<(opt: {
        node: NodeDataType;
        defaultValue: string;
    }) => unknown>;
    readonly renderNodeActions: {
        type: PropType<boolean | ((opt: {
            node: NodeDataType;
            defaultActions: {
                copy: () => void;
            };
        }) => unknown)>;
        default: undefined;
    };
    readonly selectableType: PropType<"" | "multiple" | "single">;
    readonly showSelectController: {
        type: BooleanConstructor;
        default: boolean;
    };
    readonly showLine: {
        type: BooleanConstructor;
        default: boolean;
    };
    readonly showLineNumber: {
        type: BooleanConstructor;
        default: boolean;
    };
    readonly selectOnClickNode: {
        type: BooleanConstructor;
        default: boolean;
    };
    readonly nodeSelectable: {
        type: PropType<(node: NodeDataType) => boolean>;
        default: () => boolean;
    };
    readonly highlightSelectedNode: {
        type: BooleanConstructor;
        default: boolean;
    };
    readonly showIcon: {
        type: BooleanConstructor;
        default: boolean;
    };
    readonly theme: {
        type: PropType<"dark" | "light">;
        default: string;
    };
    readonly showKeyValueSpace: {
        type: BooleanConstructor;
        default: boolean;
    };
    readonly editable: {
        type: BooleanConstructor;
        default: boolean;
    };
    readonly editableTrigger: {
        type: PropType<"click" | "dblclick">;
        default: string;
    };
    readonly onNodeClick: {
        type: PropType<(node: NodeDataType) => void>;
    };
    readonly onNodeMouseover: {
        type: PropType<(node: NodeDataType) => void>;
    };
    readonly onBracketsClick: {
        type: PropType<(collapsed: boolean, node: NodeDataType) => void>;
    };
    readonly onIconClick: {
        type: PropType<(collapsed: boolean, node: NodeDataType) => void>;
    };
    readonly onValueChange: {
        type: PropType<(value: boolean, path: string) => void>;
    };
};
export declare const basicJsonViewerProps: {
    readonly collapsedNodeLength: {
        readonly type: NumberConstructor;
        readonly default: number;
    };
    readonly deep: {
        readonly type: NumberConstructor;
        readonly default: number;
    };
    readonly pathCollapsible: {
        readonly type: PropType<(node: NodeDataType) => boolean>;
        readonly default: () => boolean;
    };
    readonly virtual: {
        readonly type: BooleanConstructor;
        readonly default: false;
    };
    readonly height: {
        readonly type: NumberConstructor;
        readonly default: 400;
    };
    readonly itemHeight: {
        readonly type: NumberConstructor;
        readonly default: 20;
    };
    readonly dynamicHeight: {
        readonly type: BooleanConstructor;
        readonly default: true;
    };
    readonly selectedValue: {
        readonly type: PropType<string | string[]>;
        readonly default: () => string;
    };
    readonly collapsedOnClickBrackets: {
        readonly type: BooleanConstructor;
        readonly default: true;
    };
    readonly style: {
        readonly type: PropType<CSSProperties>;
        readonly default: undefined;
    };
    readonly onSelectedChange: {
        readonly type: PropType<(newVal: string | string[], oldVal: string | string[]) => void>;
        readonly default: undefined;
    };
    readonly theme: {
        readonly type: PropType<"dark" | "light">;
        readonly default: "light";
    };
    readonly data: {
        type: PropType<JSONDataType>;
        default: null;
    };
    readonly rootPath: {
        type: StringConstructor;
        default: string;
    };
    readonly indent: {
        type: NumberConstructor;
        default: number;
    };
    readonly showLength: {
        type: BooleanConstructor;
        default: boolean;
    };
    readonly showDoubleQuotes: {
        type: BooleanConstructor;
        default: boolean;
    };
    readonly renderNodeKey: PropType<(opt: {
        node: NodeDataType;
        defaultKey: string;
    }) => unknown>;
    readonly renderNodeValue: PropType<(opt: {
        node: NodeDataType;
        defaultValue: string;
    }) => unknown>;
    readonly renderNodeActions: {
        type: PropType<boolean | ((opt: {
            node: NodeDataType;
            defaultActions: {
                copy: () => void;
            };
        }) => unknown)>;
        default: undefined;
    };
    readonly selectableType: PropType<"" | "multiple" | "single">;
    readonly showSelectController: {
        type: BooleanConstructor;
        default: boolean;
    };
    readonly showLine: {
        type: BooleanConstructor;
        default: boolean;
    };
    readonly showLineNumber: {
        type: BooleanConstructor;
        default: boolean;
    };
    readonly selectOnClickNode: {
        type: BooleanConstructor;
        default: boolean;
    };
    readonly nodeSelectable: {
        type: PropType<(node: NodeDataType) => boolean>;
        default: () => boolean;
    };
    readonly highlightSelectedNode: {
        type: BooleanConstructor;
        default: boolean;
    };
    readonly showIcon: {
        type: BooleanConstructor;
        default: boolean;
    };
    readonly showKeyValueSpace: {
        type: BooleanConstructor;
        default: boolean;
    };
    readonly editable: {
        type: BooleanConstructor;
        default: boolean;
    };
    readonly editableTrigger: {
        type: PropType<"click" | "dblclick">;
        default: string;
    };
    readonly onNodeClick: {
        type: PropType<(node: NodeDataType) => void>;
    };
    readonly onNodeMouseover: {
        type: PropType<(node: NodeDataType) => void>;
    };
    readonly onBracketsClick: {
        type: PropType<(collapsed: boolean, node: NodeDataType) => void>;
    };
    readonly onIconClick: {
        type: PropType<(collapsed: boolean, node: NodeDataType) => void>;
    };
    readonly onValueChange: {
        type: PropType<(value: boolean, path: string) => void>;
    };
};
export type BasicJsonViewerProps = ExtractPropTypes<typeof basicJsonViewerProps>;
export interface BasicJsonViewerContext {
    name: string;
}
//# sourceMappingURL=interface.d.ts.map