import { type PropType, type VNode, type VNodeChild } from 'vue';
import { type VueRefTarget } from '@mantine-vue/hooks';
import { type UseSplitterRedistributeFn, type UseSplitterReturnValue } from './use-splitter';
export type SplitterStylesNames = 'root' | 'handle' | 'thumb' | 'pane';
export type SplitterCssVariables = '--splitter-line-size' | '--splitter-handle-color';
export interface SplitterProps {
    orientation?: 'horizontal' | 'vertical';
    sizes?: number[];
    onSizeChange?: (sizes: number[]) => void;
    onResizeStart?: (handleIndex: number) => void;
    onResizeEnd?: (handleIndex: number, sizes: number[]) => void;
    onCollapseChange?: (panelIndex: number, collapsed: boolean) => void;
    redistribute?: 'nearest' | 'equal' | UseSplitterRedistributeFn;
    step?: number;
    shiftStep?: number;
    lineSize?: number | string;
    handleColor?: string;
    handleIcon?: VNodeChild;
    withHandle?: boolean;
    resetOnDoubleClick?: boolean;
    splitterRef?: VueRefTarget<UseSplitterReturnValue>;
    mod?: any;
    classNames?: any;
    styles?: any;
    vars?: any;
    unstyled?: boolean;
}
export declare const Splitter: import("../..").WithBoxProps<{
    new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<Readonly<import("vue").ExtractPropTypes<{
        orientation: {
            type: PropType<"horizontal" | "vertical">;
            default: undefined;
        };
        sizes: {
            type: PropType<number[]>;
            default: undefined;
        };
        onSizeChange: {
            type: PropType<(sizes: number[]) => void>;
            default: undefined;
        };
        onResizeStart: {
            type: PropType<(index: number) => void>;
            default: undefined;
        };
        onResizeEnd: {
            type: PropType<(index: number, sizes: number[]) => void>;
            default: undefined;
        };
        onCollapseChange: {
            type: PropType<(index: number, collapsed: boolean) => void>;
            default: undefined;
        };
        redistribute: {
            type: PropType<"nearest" | "equal" | UseSplitterRedistributeFn>;
            default: undefined;
        };
        step: {
            type: NumberConstructor;
            default: undefined;
        };
        shiftStep: {
            type: NumberConstructor;
            default: undefined;
        };
        lineSize: {
            type: PropType<string | number>;
            default: undefined;
        };
        handleColor: {
            type: StringConstructor;
            default: undefined;
        };
        handleIcon: {
            type: PropType<VNodeChild>;
            default: undefined;
        };
        withHandle: {
            type: BooleanConstructor;
            default: undefined;
        };
        resetOnDoubleClick: {
            type: BooleanConstructor;
            default: undefined;
        };
        splitterRef: {
            type: PropType<VueRefTarget<UseSplitterReturnValue>>;
            default: undefined;
        };
        mod: {
            type: PropType<any>;
            default: undefined;
        };
        classNames: {
            type: (ObjectConstructor | FunctionConstructor)[];
            default: undefined;
        };
        styles: {
            type: (ObjectConstructor | FunctionConstructor)[];
            default: undefined;
        };
        vars: {
            type: (ObjectConstructor | FunctionConstructor)[];
            default: undefined;
        };
        unstyled: {
            type: BooleanConstructor;
            default: boolean;
        };
    }>> & Readonly<{}>, () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
        [key: string]: any;
    }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, import("vue").PublicProps, {
        sizes: number[];
        classNames: Function | Record<string, any>;
        styles: Function | Record<string, any>;
        mod: any;
        step: number;
        orientation: "horizontal" | "vertical";
        onSizeChange: (sizes: number[]) => void;
        onResizeStart: (index: number) => void;
        onResizeEnd: (index: number, sizes: number[]) => void;
        onCollapseChange: (index: number, collapsed: boolean) => void;
        redistribute: "nearest" | "equal" | UseSplitterRedistributeFn;
        shiftStep: number;
        resetOnDoubleClick: boolean;
        vars: Function | Record<string, any>;
        unstyled: boolean;
        lineSize: string | number;
        handleColor: string;
        handleIcon: VNodeChild;
        withHandle: boolean;
        splitterRef: VueRefTarget<UseSplitterReturnValue>;
    }, true, {}, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
        P: {};
        B: {};
        D: {};
        C: {};
        M: {};
        Defaults: {};
    }, Readonly<import("vue").ExtractPropTypes<{
        orientation: {
            type: PropType<"horizontal" | "vertical">;
            default: undefined;
        };
        sizes: {
            type: PropType<number[]>;
            default: undefined;
        };
        onSizeChange: {
            type: PropType<(sizes: number[]) => void>;
            default: undefined;
        };
        onResizeStart: {
            type: PropType<(index: number) => void>;
            default: undefined;
        };
        onResizeEnd: {
            type: PropType<(index: number, sizes: number[]) => void>;
            default: undefined;
        };
        onCollapseChange: {
            type: PropType<(index: number, collapsed: boolean) => void>;
            default: undefined;
        };
        redistribute: {
            type: PropType<"nearest" | "equal" | UseSplitterRedistributeFn>;
            default: undefined;
        };
        step: {
            type: NumberConstructor;
            default: undefined;
        };
        shiftStep: {
            type: NumberConstructor;
            default: undefined;
        };
        lineSize: {
            type: PropType<string | number>;
            default: undefined;
        };
        handleColor: {
            type: StringConstructor;
            default: undefined;
        };
        handleIcon: {
            type: PropType<VNodeChild>;
            default: undefined;
        };
        withHandle: {
            type: BooleanConstructor;
            default: undefined;
        };
        resetOnDoubleClick: {
            type: BooleanConstructor;
            default: undefined;
        };
        splitterRef: {
            type: PropType<VueRefTarget<UseSplitterReturnValue>>;
            default: undefined;
        };
        mod: {
            type: PropType<any>;
            default: undefined;
        };
        classNames: {
            type: (ObjectConstructor | FunctionConstructor)[];
            default: undefined;
        };
        styles: {
            type: (ObjectConstructor | FunctionConstructor)[];
            default: undefined;
        };
        vars: {
            type: (ObjectConstructor | FunctionConstructor)[];
            default: undefined;
        };
        unstyled: {
            type: BooleanConstructor;
            default: boolean;
        };
    }>> & Readonly<{}>, () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
        [key: string]: any;
    }>, {}, {}, {}, {
        sizes: number[];
        classNames: Function | Record<string, any>;
        styles: Function | Record<string, any>;
        mod: any;
        step: number;
        orientation: "horizontal" | "vertical";
        onSizeChange: (sizes: number[]) => void;
        onResizeStart: (index: number) => void;
        onResizeEnd: (index: number, sizes: number[]) => void;
        onCollapseChange: (index: number, collapsed: boolean) => void;
        redistribute: "nearest" | "equal" | UseSplitterRedistributeFn;
        shiftStep: number;
        resetOnDoubleClick: boolean;
        vars: Function | Record<string, any>;
        unstyled: boolean;
        lineSize: string | number;
        handleColor: string;
        handleIcon: VNodeChild;
        withHandle: boolean;
        splitterRef: VueRefTarget<UseSplitterReturnValue>;
    }>;
    __isFragment?: never;
    __isTeleport?: never;
    __isSuspense?: never;
} & import("vue").ComponentOptionsBase<Readonly<import("vue").ExtractPropTypes<{
    orientation: {
        type: PropType<"horizontal" | "vertical">;
        default: undefined;
    };
    sizes: {
        type: PropType<number[]>;
        default: undefined;
    };
    onSizeChange: {
        type: PropType<(sizes: number[]) => void>;
        default: undefined;
    };
    onResizeStart: {
        type: PropType<(index: number) => void>;
        default: undefined;
    };
    onResizeEnd: {
        type: PropType<(index: number, sizes: number[]) => void>;
        default: undefined;
    };
    onCollapseChange: {
        type: PropType<(index: number, collapsed: boolean) => void>;
        default: undefined;
    };
    redistribute: {
        type: PropType<"nearest" | "equal" | UseSplitterRedistributeFn>;
        default: undefined;
    };
    step: {
        type: NumberConstructor;
        default: undefined;
    };
    shiftStep: {
        type: NumberConstructor;
        default: undefined;
    };
    lineSize: {
        type: PropType<string | number>;
        default: undefined;
    };
    handleColor: {
        type: StringConstructor;
        default: undefined;
    };
    handleIcon: {
        type: PropType<VNodeChild>;
        default: undefined;
    };
    withHandle: {
        type: BooleanConstructor;
        default: undefined;
    };
    resetOnDoubleClick: {
        type: BooleanConstructor;
        default: undefined;
    };
    splitterRef: {
        type: PropType<VueRefTarget<UseSplitterReturnValue>>;
        default: undefined;
    };
    mod: {
        type: PropType<any>;
        default: undefined;
    };
    classNames: {
        type: (ObjectConstructor | FunctionConstructor)[];
        default: undefined;
    };
    styles: {
        type: (ObjectConstructor | FunctionConstructor)[];
        default: undefined;
    };
    vars: {
        type: (ObjectConstructor | FunctionConstructor)[];
        default: undefined;
    };
    unstyled: {
        type: BooleanConstructor;
        default: boolean;
    };
}>> & Readonly<{}>, () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
    [key: string]: any;
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, {
    sizes: number[];
    classNames: Function | Record<string, any>;
    styles: Function | Record<string, any>;
    mod: any;
    step: number;
    orientation: "horizontal" | "vertical";
    onSizeChange: (sizes: number[]) => void;
    onResizeStart: (index: number) => void;
    onResizeEnd: (index: number, sizes: number[]) => void;
    onCollapseChange: (index: number, collapsed: boolean) => void;
    redistribute: "nearest" | "equal" | UseSplitterRedistributeFn;
    shiftStep: number;
    resetOnDoubleClick: boolean;
    vars: Function | Record<string, any>;
    unstyled: boolean;
    lineSize: string | number;
    handleColor: string;
    handleIcon: VNodeChild;
    withHandle: boolean;
    splitterRef: VueRefTarget<UseSplitterReturnValue>;
}, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & {
    classes: Record<string, string>;
    varsResolver: (theme: import("../..").MantineTheme, props: any, ctx: Record<string, any>) => Record<string, Record<string, string | undefined>>;
    Pane: import("../..").WithBoxProps<import("vue").DefineComponent<import("vue").ExtractPropTypes<{
        defaultSize: {
            type: NumberConstructor;
            required: true;
        };
        min: {
            type: NumberConstructor;
            default: undefined;
        };
        max: {
            type: NumberConstructor;
            default: undefined;
        };
        collapsible: {
            type: BooleanConstructor;
            default: boolean;
        };
        collapseThreshold: {
            type: NumberConstructor;
            default: undefined;
        };
        __index: {
            type: NumberConstructor;
            default: undefined;
        };
        mod: {
            type: PropType<any>;
            default: undefined;
        };
        classNames: {
            type: (ObjectConstructor | FunctionConstructor)[];
            default: undefined;
        };
        styles: {
            type: (ObjectConstructor | FunctionConstructor)[];
            default: undefined;
        };
        vars: {
            type: (ObjectConstructor | FunctionConstructor)[];
            default: undefined;
        };
    }>, () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
        [key: string]: any;
    }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
        defaultSize: {
            type: NumberConstructor;
            required: true;
        };
        min: {
            type: NumberConstructor;
            default: undefined;
        };
        max: {
            type: NumberConstructor;
            default: undefined;
        };
        collapsible: {
            type: BooleanConstructor;
            default: boolean;
        };
        collapseThreshold: {
            type: NumberConstructor;
            default: undefined;
        };
        __index: {
            type: NumberConstructor;
            default: undefined;
        };
        mod: {
            type: PropType<any>;
            default: undefined;
        };
        classNames: {
            type: (ObjectConstructor | FunctionConstructor)[];
            default: undefined;
        };
        styles: {
            type: (ObjectConstructor | FunctionConstructor)[];
            default: undefined;
        };
        vars: {
            type: (ObjectConstructor | FunctionConstructor)[];
            default: undefined;
        };
    }>> & Readonly<{}>, {
        max: number;
        classNames: Function | Record<string, any>;
        styles: Function | Record<string, any>;
        mod: any;
        vars: Function | Record<string, any>;
        min: number;
        collapsible: boolean;
        collapseThreshold: number;
        __index: number;
    }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>>;
}>;
