import { CSSProperties, VNode } from 'vue';
export interface SplitterProps {
    prefixCls?: string;
    className?: string;
    style?: CSSProperties;
    rootClassName?: string;
    layout?: 'horizontal' | 'vertical';
    onResizeStart?: (sizes: number[]) => void;
    onResize?: (sizes: number[]) => void;
    onResizeEnd?: (sizes: number[]) => void;
    lazy?: boolean;
    draggerIcon?: VNode;
    /**
     * @deprecated please use `collapsible.icon`
     */
    collapsibleIcon?: {
        start?: VNode;
        end?: VNode;
    };
    collapsible?: {
        motion?: boolean;
        icon?: {
            start?: VNode;
            end?: VNode;
        };
    };
    destroyOnHidden?: boolean;
    onDraggerDoubleClick?: (index: number) => void;
}
export interface PanelProps {
    className?: string;
    style?: CSSProperties;
    min?: number | string;
    max?: number | string;
    size?: number | string;
    collapsible?: boolean | {
        start?: boolean;
        end?: boolean;
        showCollapsibleIcon?: boolean | 'auto';
    };
    resizable?: boolean;
    defaultSize?: number | string;
    destroyOnHidden?: boolean;
}
export interface InternalPanelProps extends PanelProps {
    className?: string;
    prefixCls?: string;
    supportMotion?: boolean;
}
export interface UseResize {
    setSize: (data: {
        size: number;
        index: number;
    }[]) => void;
    setOffset: (offset: number, containerSize: number, index: number) => void;
}
export interface UseHandle {
    onStart: (x: number, y: number, index: number) => void;
}
export interface UseCollapsibleProps {
    basicsState: number[];
    collapsible?: PanelProps['collapsible'];
    index: number;
    reverse: boolean;
    setSize?: UseResize['setSize'];
}
export interface UseCollapsible {
    nextIcon: boolean;
    overlap: boolean;
    previousIcon: boolean;
    onFold: (type: 'previous' | 'next') => void;
    setOldBasics: () => void;
}
export type ShowCollapsibleIconMode = boolean | 'auto';
export interface SplitBarProps {
    index: number;
    active: boolean;
    resizable: boolean;
    startCollapsible: boolean;
    endCollapsible: boolean;
    onOffsetStart: (index: number) => void;
    onOffsetUpdate: (index: number, offsetX: number, offsetY: number) => void;
    onOffsetEnd: VoidFunction;
    onCollapse: (index: number, type: 'start' | 'end') => void;
    vertical: boolean;
    ariaNow?: number;
    ariaMin?: number;
    ariaMax?: number;
    lazy?: boolean;
    containerSize: number;
    draggerIcon?: SplitterProps['draggerIcon'];
    collapsibleIcon?: SplitterProps['collapsibleIcon'];
    showStartCollapsibleIcon: ShowCollapsibleIconMode;
    showEndCollapsibleIcon: ShowCollapsibleIconMode;
    onDraggerDoubleClick?: (index: number) => void;
}
