import { ComponentOptionsMixin } from 'vue';
import { ComponentProvideOptions } from 'vue';
import { DefineComponent } from 'vue';
import { PublicProps } from 'vue';

declare const __VLS_component: DefineComponent<__VLS_Props, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
click: (event: MouseEvent) => any;
}, string, PublicProps, Readonly<__VLS_Props> & Readonly<{
onClick?: ((event: MouseEvent) => any) | undefined;
}>, {
size: "xs" | "sm" | "md" | "lg" | "xl";
}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLButtonElement>;

declare const __VLS_component_10: DefineComponent<__VLS_Props_20, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
nodeClick: (node: TreeNode) => any;
nodeSelect: (node: TreeNode) => any;
nodeExpand: (node: TreeNode, expanded: boolean) => any;
}, string, PublicProps, Readonly<__VLS_Props_20> & Readonly<{
onNodeClick?: ((node: TreeNode) => any) | undefined;
onNodeSelect?: ((node: TreeNode) => any) | undefined;
onNodeExpand?: ((node: TreeNode, expanded: boolean) => any) | undefined;
}>, {
showHeader: boolean;
expandAll: boolean;
selectable: boolean;
indentSize: number;
}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;

declare const __VLS_component_2: DefineComponent<__VLS_Props_3, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
"update:modelValue": (value: string) => any;
focus: (event: FocusEvent) => any;
blur: (event: FocusEvent) => any;
keydown: (event: KeyboardEvent) => any;
keyup: (event: KeyboardEvent) => any;
enter: (event: KeyboardEvent) => any;
}, string, PublicProps, Readonly<__VLS_Props_3> & Readonly<{
"onUpdate:modelValue"?: ((value: string) => any) | undefined;
onFocus?: ((event: FocusEvent) => any) | undefined;
onBlur?: ((event: FocusEvent) => any) | undefined;
onKeydown?: ((event: KeyboardEvent) => any) | undefined;
onKeyup?: ((event: KeyboardEvent) => any) | undefined;
onEnter?: ((event: KeyboardEvent) => any) | undefined;
}>, {
size: "xs" | "sm" | "md" | "lg" | "xl";
disabled: boolean;
readonly: boolean;
}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;

declare const __VLS_component_3: DefineComponent<__VLS_Props_5, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_5> & Readonly<{}>, {
language: string;
theme: string;
}, {}, {}, {}, string, ComponentProvideOptions, false, {
slotCodeRef: HTMLElement;
}, HTMLDivElement>;

declare const __VLS_component_4: DefineComponent<__VLS_Props_6, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_6> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLSpanElement>;

declare const __VLS_component_5: DefineComponent<__VLS_Props_7, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_7> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;

declare const __VLS_component_6: DefineComponent<__VLS_Props_9, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {} & {
scroll: (event: Event) => any;
}, string, PublicProps, Readonly<__VLS_Props_9> & Readonly<{
onScroll?: ((event: Event) => any) | undefined;
}>, {
itemHeight: number;
overscan: number;
keyField: string | ((item: unknown) => string | number);
}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;

declare const __VLS_component_7: DefineComponent<__VLS_Props_10, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
close: () => any;
}, string, PublicProps, Readonly<__VLS_Props_10> & Readonly<{
onClose?: (() => any) | undefined;
}>, {
size: "xs" | "sm" | "md" | "lg" | "xl" | "full";
closable: boolean;
}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;

declare const __VLS_component_8: DefineComponent<__VLS_Props_11, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_11> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {
container: HTMLDivElement;
}, HTMLDivElement>;

declare const __VLS_component_9: DefineComponent<__VLS_Props_15, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_15> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;

declare type __VLS_Props = {
    variant?: 'primary' | 'secondary' | 'ghost' | 'danger';
    size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
    icon?: string;
    loading?: boolean;
};

declare type __VLS_Props_10 = {
    visible: boolean;
    title?: string;
    size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'full';
    closable?: boolean;
};

declare type __VLS_Props_11 = {
    defaultSize?: number;
    min?: number;
    max?: number;
};

declare type __VLS_Props_12 = {
    data: unknown;
    editable?: boolean;
    deep?: number;
};

declare type __VLS_Props_13 = {
    text?: string;
    size?: 'sm' | 'md' | 'lg';
    fullscreen?: boolean;
};

declare type __VLS_Props_14 = {
    icon?: string;
    title?: string;
    description?: string;
    size?: 'sm' | 'md' | 'lg';
};

declare type __VLS_Props_15 = {
    title?: string;
    subtitle?: string;
    padding?: boolean;
    hover?: boolean;
};

declare type __VLS_Props_16 = {
    label: string;
    value: string | number;
    copyable?: boolean;
    monospace?: boolean;
};

declare type __VLS_Props_17 = {
    items: string[];
    modelValue: string;
};

declare type __VLS_Props_18 = {
    label: string;
    value: string | number;
    color?: 'indigo' | 'green' | 'blue' | 'purple' | 'red' | 'yellow';
    size?: 'sm' | 'md' | 'lg';
};

declare type __VLS_Props_19 = {
    schema: Record<string, SettingSchemaDef>;
    modelValue: Record<string, unknown>;
};

declare type __VLS_Props_2 = {
    name: string;
    size?: string;
    solid?: boolean;
};

declare type __VLS_Props_20 = {
    nodes: TreeNode[];
    title?: string;
    showHeader?: boolean;
    expandAll?: boolean;
    selectable?: boolean;
    indentSize?: number;
};

declare type __VLS_Props_21 = {
    tagName: string;
    id?: string;
    classes?: string[];
    isCurrent?: boolean;
    hasChildren?: boolean;
};

declare type __VLS_Props_3 = {
    modelValue?: string | number;
    placeholder?: string;
    type?: string;
    size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
    disabled?: boolean;
    readonly?: boolean;
    prefix?: string;
    suffix?: string;
    prefixIcon?: string;
    suffixIcon?: string;
    prepend?: string;
    append?: string;
};

declare type __VLS_Props_4 = {
    modelValue?: string;
    options?: Option_2[];
    placeholder?: string;
    size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
    disabled?: boolean;
};

declare type __VLS_Props_5 = {
    language?: string;
    code?: string;
    theme?: string;
};

declare type __VLS_Props_6 = {
    color?: 'gray' | 'red' | 'green' | 'yellow' | 'blue';
    label?: string | number;
    size?: 'xs' | 'sm' | 'md';
};

declare type __VLS_Props_7 = {
    columns: {
        key: string;
        label: string;
        width?: string;
    }[];
    rows: unknown[];
};

declare type __VLS_Props_8 = {
    items: string[];
    modelValue?: string;
};

declare type __VLS_Props_9 = VirtualListProps;

declare function __VLS_template(): {
    attrs: Partial<{}>;
    slots: {
        default?(_: {}): any;
    };
    refs: {};
    rootEl: HTMLButtonElement;
};

declare function __VLS_template_10(): {
    attrs: Partial<{}>;
    slots: {
        node?(_: {
            node: TreeNode;
            depth: number;
            isExpanded: boolean;
            toggleExpand: (node: TreeNode, event: MouseEvent) => void;
            handleClick: (node: TreeNode, event: MouseEvent) => void;
        }): any;
        label?(_: {
            node: TreeNode;
        }): any;
        label?(_: {
            node: TreeNode;
        }): any;
    };
    refs: {};
    rootEl: HTMLDivElement;
};

declare function __VLS_template_2(): {
    attrs: Partial<{}>;
    slots: {
        prepend?(_: {}): any;
        prefix?(_: {}): any;
        suffix?(_: {}): any;
        append?(_: {}): any;
    };
    refs: {};
    rootEl: HTMLDivElement;
};

declare function __VLS_template_3(): {
    attrs: Partial<{}>;
    slots: {
        actions?(_: {}): any;
        actions?(_: {}): any;
        default?(_: {}): any;
    };
    refs: {
        slotCodeRef: HTMLElement;
    };
    rootEl: HTMLDivElement;
};

declare function __VLS_template_4(): {
    attrs: Partial<{}>;
    slots: {
        default?(_: {}): any;
    };
    refs: {};
    rootEl: HTMLSpanElement;
};

declare function __VLS_template_5(): {
    attrs: Partial<{}>;
    slots: Partial<Record<`cell-${string}`, (_: {
        row: unknown;
        val: unknown;
    }) => any>>;
    refs: {};
    rootEl: HTMLDivElement;
};

declare function __VLS_template_6(): {
    attrs: Partial<{}>;
    slots: {
        default?(_: {
            item: unknown;
            index: number;
        }): any;
        empty?(_: {}): any;
    };
    refs: {};
    rootEl: HTMLDivElement;
};

declare function __VLS_template_7(): {
    attrs: Partial<{}>;
    slots: Readonly<{
        default(): unknown;
    }> & {
        default(): unknown;
    };
    refs: {};
    rootEl: any;
};

declare function __VLS_template_8(): {
    attrs: Partial<{}>;
    slots: {
        left?(_: {}): any;
        right?(_: {}): any;
    };
    refs: {
        container: HTMLDivElement;
    };
    rootEl: HTMLDivElement;
};

declare function __VLS_template_9(): {
    attrs: Partial<{}>;
    slots: {
        default?(_: {}): any;
    };
    refs: {};
    rootEl: HTMLDivElement;
};

declare type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;

declare type __VLS_TemplateResult_10 = ReturnType<typeof __VLS_template_10>;

declare type __VLS_TemplateResult_2 = ReturnType<typeof __VLS_template_2>;

declare type __VLS_TemplateResult_3 = ReturnType<typeof __VLS_template_3>;

declare type __VLS_TemplateResult_4 = ReturnType<typeof __VLS_template_4>;

declare type __VLS_TemplateResult_5 = ReturnType<typeof __VLS_template_5>;

declare type __VLS_TemplateResult_6 = ReturnType<typeof __VLS_template_6>;

declare type __VLS_TemplateResult_7 = ReturnType<typeof __VLS_template_7>;

declare type __VLS_TemplateResult_8 = ReturnType<typeof __VLS_template_8>;

declare type __VLS_TemplateResult_9 = ReturnType<typeof __VLS_template_9>;

declare type __VLS_WithTemplateSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};

declare type __VLS_WithTemplateSlots_10<T, S> = T & {
    new (): {
        $slots: S;
    };
};

declare type __VLS_WithTemplateSlots_2<T, S> = T & {
    new (): {
        $slots: S;
    };
};

declare type __VLS_WithTemplateSlots_3<T, S> = T & {
    new (): {
        $slots: S;
    };
};

declare type __VLS_WithTemplateSlots_4<T, S> = T & {
    new (): {
        $slots: S;
    };
};

declare type __VLS_WithTemplateSlots_5<T, S> = T & {
    new (): {
        $slots: S;
    };
};

declare type __VLS_WithTemplateSlots_6<T, S> = T & {
    new (): {
        $slots: S;
    };
};

declare type __VLS_WithTemplateSlots_7<T, S> = T & {
    new (): {
        $slots: S;
    };
};

declare type __VLS_WithTemplateSlots_8<T, S> = T & {
    new (): {
        $slots: S;
    };
};

declare type __VLS_WithTemplateSlots_9<T, S> = T & {
    new (): {
        $slots: S;
    };
};

declare interface Option_2 {
    label: string;
    value: string;
}

declare interface SettingSchemaDef {
    label: string;
    description?: string;
    type: 'string' | 'number' | 'boolean' | 'select' | 'array';
    default?: unknown;
    options?: {
        label: string;
        value: unknown;
    }[];
    items?: Record<string, SettingSchemaDef>;
    itemType?: 'string' | 'number';
}

export declare interface TreeNode {
    id: string | number;
    label: string;
    children?: TreeNode[];
    data?: Record<string, unknown>;
    isExpanded?: boolean;
    isSelected?: boolean;
    isCurrent?: boolean;
    icon?: string;
    [key: string]: unknown;
}

export declare const UBadge: __VLS_WithTemplateSlots_4<typeof __VLS_component_4, __VLS_TemplateResult_4["slots"]>;

export declare const UButton: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;

export declare const UCard: __VLS_WithTemplateSlots_9<typeof __VLS_component_9, __VLS_TemplateResult_9["slots"]>;

export declare const UCodeBlock: __VLS_WithTemplateSlots_3<typeof __VLS_component_3, __VLS_TemplateResult_3["slots"]>;

export declare const UDomNode: DefineComponent<__VLS_Props_21, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_21> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;

export declare const UEmpty: DefineComponent<__VLS_Props_14, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_14> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;

export declare const UForm: DefineComponent<__VLS_Props_19, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
"update:modelValue": (value: Record<string, unknown>) => any;
}, string, PublicProps, Readonly<__VLS_Props_19> & Readonly<{
"onUpdate:modelValue"?: ((value: Record<string, unknown>) => any) | undefined;
}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;

export declare const UIcon: DefineComponent<__VLS_Props_2, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_2> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;

export declare const UInput: __VLS_WithTemplateSlots_2<typeof __VLS_component_2, __VLS_TemplateResult_2["slots"]>;

export declare const UJsonTree: DefineComponent<__VLS_Props_12, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_12> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;

export declare const UKeyValue: DefineComponent<__VLS_Props_16, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_16> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;

export declare const ULoading: DefineComponent<__VLS_Props_13, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_13> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;

export declare const UModal: __VLS_WithTemplateSlots_7<typeof __VLS_component_7, __VLS_TemplateResult_7["slots"]>;

export declare const USelect: DefineComponent<__VLS_Props_4, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
"update:modelValue": (value: string) => any;
change: (event: Event) => any;
}, string, PublicProps, Readonly<__VLS_Props_4> & Readonly<{
"onUpdate:modelValue"?: ((value: string) => any) | undefined;
onChange?: ((event: Event) => any) | undefined;
}>, {
size: "xs" | "sm" | "md" | "lg" | "xl";
disabled: boolean;
}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLSelectElement>;

export declare const USplitter: __VLS_WithTemplateSlots_8<typeof __VLS_component_8, __VLS_TemplateResult_8["slots"]>;

export declare const UStat: DefineComponent<__VLS_Props_18, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_18> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;

export declare const UTabButtons: DefineComponent<__VLS_Props_17, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
"update:modelValue": (value: string) => any;
}, string, PublicProps, Readonly<__VLS_Props_17> & Readonly<{
"onUpdate:modelValue"?: ((value: string) => any) | undefined;
}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;

export declare const UTable: __VLS_WithTemplateSlots_5<typeof __VLS_component_5, __VLS_TemplateResult_5["slots"]>;

export declare const UTabs: DefineComponent<__VLS_Props_8, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
"update:modelValue": (value: string) => any;
}, string, PublicProps, Readonly<__VLS_Props_8> & Readonly<{
"onUpdate:modelValue"?: ((value: string) => any) | undefined;
}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;

export declare const UTreeView: __VLS_WithTemplateSlots_10<typeof __VLS_component_10, __VLS_TemplateResult_10["slots"]>;

export declare const UVirtualList: __VLS_WithTemplateSlots_6<typeof __VLS_component_6, __VLS_TemplateResult_6["slots"]>;

declare interface VirtualListProps<T = unknown> {
    items: T[];
    itemHeight?: number;
    overscan?: number;
    keyField?: string | ((item: T) => string | number);
}

export { }
