import type { CSSProperties, ExtractPropTypes, PropType } from 'vue';
import type { VueNode } from '../_util/type';
import type { PaginationType } from './interface';
export type { TransferListProps } from './list';
export type { TransferOperationProps } from './operation';
export type { TransferSearchProps } from './search';
export declare type TransferDirection = 'left' | 'right';
export interface RenderResultObject {
    label: VueNode;
    value: string;
}
export declare type RenderResult = VueNode | RenderResultObject | string | null;
export interface TransferItem {
    key?: string;
    title?: string;
    description?: string;
    disabled?: boolean;
    [name: string]: any;
}
export declare type KeyWise<T> = T & {
    key: string;
};
export declare type KeyWiseTransferItem = KeyWise<TransferItem>;
declare type TransferRender<RecordType> = (item: RecordType) => RenderResult;
export interface ListStyle {
    direction: TransferDirection;
}
export declare type SelectAllLabel = VueNode | ((info: {
    selectedCount: number;
    totalCount: number;
}) => VueNode);
export interface TransferLocale {
    titles: VueNode[];
    notFoundContent?: VueNode;
    searchPlaceholder: string;
    itemUnit: string;
    itemsUnit: string;
    remove: string;
    selectAll: string;
    selectCurrent: string;
    selectInvert: string;
    removeAll: string;
    removeCurrent: string;
}
export declare const transferProps: {
    id: StringConstructor;
    prefixCls: StringConstructor;
    dataSource: {
        type: PropType<TransferItem[]>;
        default: any[];
    };
    disabled: {
        type: BooleanConstructor;
        default: any;
    };
    targetKeys: {
        type: PropType<string[]>;
        default: any;
    };
    selectedKeys: {
        type: PropType<string[]>;
        default: any;
    };
    render: {
        type: PropType<TransferRender<TransferItem>>;
    };
    listStyle: {
        type: PropType<CSSProperties | ((style: ListStyle) => CSSProperties)>;
        default: () => {};
    };
    operationStyle: import("vue-types").VueTypeValidableDef<CSSProperties>;
    titles: {
        type: PropType<string[]>;
    };
    operations: {
        type: PropType<string[]>;
    };
    showSearch: {
        type: BooleanConstructor;
        default: boolean;
    };
    filterOption: {
        type: PropType<(inputValue: string, item: TransferItem) => boolean>;
    };
    searchPlaceholder: StringConstructor;
    notFoundContent: import("vue-types").VueTypeValidableDef<any>;
    locale: {
        type: PropType<Partial<TransferLocale>>;
        default: () => {};
    };
    rowKey: {
        type: PropType<(record: TransferItem) => string>;
    };
    showSelectAll: {
        type: BooleanConstructor;
        default: any;
    };
    selectAllLabels: {
        type: PropType<SelectAllLabel[]>;
    };
    children: {
        type: PropType<(props: any) => VueNode>;
    };
    oneWay: {
        type: BooleanConstructor;
        default: any;
    };
    pagination: {
        type: PropType<PaginationType>;
        default: any;
    };
    onChange: import("vue-types").VueTypeValidableDef<(...args: any[]) => any> & {
        default: (...args: any[]) => any;
    };
    onSelectChange: import("vue-types").VueTypeValidableDef<(...args: any[]) => any> & {
        default: (...args: any[]) => any;
    };
    onSearchChange: import("vue-types").VueTypeValidableDef<(...args: any[]) => any> & {
        default: (...args: any[]) => any;
    };
    onSearch: import("vue-types").VueTypeValidableDef<(...args: any[]) => any> & {
        default: (...args: any[]) => any;
    };
    onScroll: import("vue-types").VueTypeValidableDef<(...args: any[]) => any> & {
        default: (...args: any[]) => any;
    };
    "onUpdate:targetKeys": import("vue-types").VueTypeValidableDef<(...args: any[]) => any> & {
        default: (...args: any[]) => any;
    };
};
export declare type TransferProps = Partial<ExtractPropTypes<typeof transferProps>>;
declare const _default: {
    new (...args: any[]): {
        $: import("vue").ComponentInternalInstance;
        $data: {};
        $props: Partial<{
            disabled: boolean;
            onChange: (...args: any[]) => any;
            onScroll: (...args: any[]) => any;
            dataSource: TransferItem[];
            locale: {};
            showSearch: boolean;
            onSearch: (...args: any[]) => any;
            listStyle: {};
            pagination: any;
            selectedKeys: string[];
            "onUpdate:targetKeys": (...args: any[]) => any;
            targetKeys: string[];
            showSelectAll: boolean;
            oneWay: boolean;
            onSelectChange: (...args: any[]) => any;
            onSearchChange: (...args: any[]) => any;
        }> & Omit<Readonly<{
            id?: unknown;
            prefixCls?: unknown;
            dataSource?: unknown;
            disabled?: unknown;
            targetKeys?: unknown;
            selectedKeys?: unknown;
            render?: unknown;
            listStyle?: unknown;
            operationStyle?: unknown;
            titles?: unknown;
            operations?: unknown;
            showSearch?: unknown;
            filterOption?: unknown;
            searchPlaceholder?: unknown;
            notFoundContent?: unknown;
            locale?: unknown;
            rowKey?: unknown;
            showSelectAll?: unknown;
            selectAllLabels?: unknown;
            children?: unknown;
            oneWay?: unknown;
            pagination?: unknown;
            onChange?: unknown;
            onSelectChange?: unknown;
            onSearchChange?: unknown;
            onSearch?: unknown;
            onScroll?: unknown;
            "onUpdate:targetKeys"?: unknown;
        } & {
            dataSource: TransferItem[];
            locale: {};
            showSearch: boolean;
            listStyle: {};
        } & {
            disabled?: boolean;
            id?: string;
            children?: (props: any) => VueNode;
            onChange?: (...args: any[]) => any;
            onScroll?: (...args: any[]) => any;
            prefixCls?: string;
            notFoundContent?: any;
            onSearch?: (...args: any[]) => any;
            filterOption?: (inputValue: string, item: TransferItem) => boolean;
            pagination?: any;
            rowKey?: (record: TransferItem) => string;
            selectedKeys?: string[];
            "onUpdate:targetKeys"?: (...args: any[]) => any;
            titles?: string[];
            searchPlaceholder?: string;
            targetKeys?: string[];
            render?: TransferRender<TransferItem>;
            operationStyle?: CSSProperties;
            operations?: string[];
            showSelectAll?: boolean;
            selectAllLabels?: SelectAllLabel[];
            oneWay?: boolean;
            onSelectChange?: (...args: any[]) => any;
            onSearchChange?: (...args: any[]) => any;
        }> & {
            onChange?: (...args: any[]) => any;
            onScroll?: (...args: any[]) => any;
            onSearch?: (...args: any[]) => any;
            "onUpdate:targetKeys"?: (...args: any[]) => any;
            onSelectChange?: (...args: any[]) => any;
            onSearchChange?: (...args: any[]) => any;
        } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, "disabled" | "onChange" | "onScroll" | "dataSource" | "locale" | "showSearch" | "onSearch" | "listStyle" | "pagination" | "selectedKeys" | "onUpdate:targetKeys" | "targetKeys" | "showSelectAll" | "oneWay" | "onSelectChange" | "onSearchChange">;
        $attrs: {
            [x: string]: unknown;
        };
        $refs: {
            [x: string]: unknown;
        };
        $slots: Readonly<{
            [name: string]: import("vue").Slot;
        }>;
        $root: import("vue").ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, import("vue").ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}>>;
        $parent: import("vue").ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, import("vue").ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}>>;
        $emit: (event: "change" | "scroll" | "search" | "update:targetKeys" | "selectChange" | "searchChange", ...args: any[]) => void;
        $el: any;
        $options: import("vue").ComponentOptionsBase<Readonly<{
            id?: unknown;
            prefixCls?: unknown;
            dataSource?: unknown;
            disabled?: unknown;
            targetKeys?: unknown;
            selectedKeys?: unknown;
            render?: unknown;
            listStyle?: unknown;
            operationStyle?: unknown;
            titles?: unknown;
            operations?: unknown;
            showSearch?: unknown;
            filterOption?: unknown;
            searchPlaceholder?: unknown;
            notFoundContent?: unknown;
            locale?: unknown;
            rowKey?: unknown;
            showSelectAll?: unknown;
            selectAllLabels?: unknown;
            children?: unknown;
            oneWay?: unknown;
            pagination?: unknown;
            onChange?: unknown;
            onSelectChange?: unknown;
            onSearchChange?: unknown;
            onSearch?: unknown;
            onScroll?: unknown;
            "onUpdate:targetKeys"?: unknown;
        } & {
            dataSource: TransferItem[];
            locale: {};
            showSearch: boolean;
            listStyle: {};
        } & {
            disabled?: boolean;
            id?: string;
            children?: (props: any) => VueNode;
            onChange?: (...args: any[]) => any;
            onScroll?: (...args: any[]) => any;
            prefixCls?: string;
            notFoundContent?: any;
            onSearch?: (...args: any[]) => any;
            filterOption?: (inputValue: string, item: TransferItem) => boolean;
            pagination?: any;
            rowKey?: (record: TransferItem) => string;
            selectedKeys?: string[];
            "onUpdate:targetKeys"?: (...args: any[]) => any;
            titles?: string[];
            searchPlaceholder?: string;
            targetKeys?: string[];
            render?: TransferRender<TransferItem>;
            operationStyle?: CSSProperties;
            operations?: string[];
            showSelectAll?: boolean;
            selectAllLabels?: SelectAllLabel[];
            oneWay?: boolean;
            onSelectChange?: (...args: any[]) => any;
            onSearchChange?: (...args: any[]) => any;
        }> & {
            onChange?: (...args: any[]) => any;
            onScroll?: (...args: any[]) => any;
            onSearch?: (...args: any[]) => any;
            "onUpdate:targetKeys"?: (...args: any[]) => any;
            onSelectChange?: (...args: any[]) => any;
            onSearchChange?: (...args: any[]) => any;
        }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("change" | "scroll" | "search" | "update:targetKeys" | "selectChange" | "searchChange")[], string, {
            disabled: boolean;
            onChange: (...args: any[]) => any;
            onScroll: (...args: any[]) => any;
            dataSource: TransferItem[];
            locale: {};
            showSearch: boolean;
            onSearch: (...args: any[]) => any;
            listStyle: {};
            pagination: any;
            selectedKeys: string[];
            "onUpdate:targetKeys": (...args: any[]) => any;
            targetKeys: string[];
            showSelectAll: boolean;
            oneWay: boolean;
            onSelectChange: (...args: any[]) => any;
            onSearchChange: (...args: any[]) => any;
        }> & {
            beforeCreate?: (() => void) | (() => void)[];
            created?: (() => void) | (() => void)[];
            beforeMount?: (() => void) | (() => void)[];
            mounted?: (() => void) | (() => void)[];
            beforeUpdate?: (() => void) | (() => void)[];
            updated?: (() => void) | (() => void)[];
            activated?: (() => void) | (() => void)[];
            deactivated?: (() => void) | (() => void)[];
            beforeDestroy?: (() => void) | (() => void)[];
            beforeUnmount?: (() => void) | (() => void)[];
            destroyed?: (() => void) | (() => void)[];
            unmounted?: (() => void) | (() => void)[];
            renderTracked?: ((e: import("vue").DebuggerEvent) => void) | ((e: import("vue").DebuggerEvent) => void)[];
            renderTriggered?: ((e: import("vue").DebuggerEvent) => void) | ((e: import("vue").DebuggerEvent) => void)[];
            errorCaptured?: ((err: unknown, instance: import("vue").ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, import("vue").ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}>>, info: string) => boolean | void) | ((err: unknown, instance: import("vue").ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, import("vue").ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}>>, info: string) => boolean | void)[];
        };
        $forceUpdate: () => void;
        $nextTick: typeof import("vue").nextTick;
        $watch(source: string | Function, cb: Function, options?: import("vue").WatchOptions<boolean>): import("vue").WatchStopHandle;
    } & Readonly<{
        id?: unknown;
        prefixCls?: unknown;
        dataSource?: unknown;
        disabled?: unknown;
        targetKeys?: unknown;
        selectedKeys?: unknown;
        render?: unknown;
        listStyle?: unknown;
        operationStyle?: unknown;
        titles?: unknown;
        operations?: unknown;
        showSearch?: unknown;
        filterOption?: unknown;
        searchPlaceholder?: unknown;
        notFoundContent?: unknown;
        locale?: unknown;
        rowKey?: unknown;
        showSelectAll?: unknown;
        selectAllLabels?: unknown;
        children?: unknown;
        oneWay?: unknown;
        pagination?: unknown;
        onChange?: unknown;
        onSelectChange?: unknown;
        onSearchChange?: unknown;
        onSearch?: unknown;
        onScroll?: unknown;
        "onUpdate:targetKeys"?: unknown;
    } & {
        dataSource: TransferItem[];
        locale: {};
        showSearch: boolean;
        listStyle: {};
    } & {
        disabled?: boolean;
        id?: string;
        children?: (props: any) => VueNode;
        onChange?: (...args: any[]) => any;
        onScroll?: (...args: any[]) => any;
        prefixCls?: string;
        notFoundContent?: any;
        onSearch?: (...args: any[]) => any;
        filterOption?: (inputValue: string, item: TransferItem) => boolean;
        pagination?: any;
        rowKey?: (record: TransferItem) => string;
        selectedKeys?: string[];
        "onUpdate:targetKeys"?: (...args: any[]) => any;
        titles?: string[];
        searchPlaceholder?: string;
        targetKeys?: string[];
        render?: TransferRender<TransferItem>;
        operationStyle?: CSSProperties;
        operations?: string[];
        showSelectAll?: boolean;
        selectAllLabels?: SelectAllLabel[];
        oneWay?: boolean;
        onSelectChange?: (...args: any[]) => any;
        onSearchChange?: (...args: any[]) => any;
    }> & {
        onChange?: (...args: any[]) => any;
        onScroll?: (...args: any[]) => any;
        onSearch?: (...args: any[]) => any;
        "onUpdate:targetKeys"?: (...args: any[]) => any;
        onSelectChange?: (...args: any[]) => any;
        onSearchChange?: (...args: any[]) => any;
    } & import("vue").ShallowUnwrapRef<() => JSX.Element> & {} & {} & import("vue").ComponentCustomProperties;
    __isFragment?: never;
    __isTeleport?: never;
    __isSuspense?: never;
} & import("vue").ComponentOptionsBase<Readonly<{
    id?: unknown;
    prefixCls?: unknown;
    dataSource?: unknown;
    disabled?: unknown;
    targetKeys?: unknown;
    selectedKeys?: unknown;
    render?: unknown;
    listStyle?: unknown;
    operationStyle?: unknown;
    titles?: unknown;
    operations?: unknown;
    showSearch?: unknown;
    filterOption?: unknown;
    searchPlaceholder?: unknown;
    notFoundContent?: unknown;
    locale?: unknown;
    rowKey?: unknown;
    showSelectAll?: unknown;
    selectAllLabels?: unknown;
    children?: unknown;
    oneWay?: unknown;
    pagination?: unknown;
    onChange?: unknown;
    onSelectChange?: unknown;
    onSearchChange?: unknown;
    onSearch?: unknown;
    onScroll?: unknown;
    "onUpdate:targetKeys"?: unknown;
} & {
    dataSource: TransferItem[];
    locale: {};
    showSearch: boolean;
    listStyle: {};
} & {
    disabled?: boolean;
    id?: string;
    children?: (props: any) => VueNode;
    onChange?: (...args: any[]) => any;
    onScroll?: (...args: any[]) => any;
    prefixCls?: string;
    notFoundContent?: any;
    onSearch?: (...args: any[]) => any;
    filterOption?: (inputValue: string, item: TransferItem) => boolean;
    pagination?: any;
    rowKey?: (record: TransferItem) => string;
    selectedKeys?: string[];
    "onUpdate:targetKeys"?: (...args: any[]) => any;
    titles?: string[];
    searchPlaceholder?: string;
    targetKeys?: string[];
    render?: TransferRender<TransferItem>;
    operationStyle?: CSSProperties;
    operations?: string[];
    showSelectAll?: boolean;
    selectAllLabels?: SelectAllLabel[];
    oneWay?: boolean;
    onSelectChange?: (...args: any[]) => any;
    onSearchChange?: (...args: any[]) => any;
}> & {
    onChange?: (...args: any[]) => any;
    onScroll?: (...args: any[]) => any;
    onSearch?: (...args: any[]) => any;
    "onUpdate:targetKeys"?: (...args: any[]) => any;
    onSelectChange?: (...args: any[]) => any;
    onSearchChange?: (...args: any[]) => any;
}, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("change" | "scroll" | "search" | "update:targetKeys" | "selectChange" | "searchChange")[], "search" | "change" | "scroll" | "update:targetKeys" | "selectChange" | "searchChange", {
    disabled: boolean;
    onChange: (...args: any[]) => any;
    onScroll: (...args: any[]) => any;
    dataSource: TransferItem[];
    locale: {};
    showSearch: boolean;
    onSearch: (...args: any[]) => any;
    listStyle: {};
    pagination: any;
    selectedKeys: string[];
    "onUpdate:targetKeys": (...args: any[]) => any;
    targetKeys: string[];
    showSelectAll: boolean;
    oneWay: boolean;
    onSelectChange: (...args: any[]) => any;
    onSearchChange: (...args: any[]) => any;
}> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & import("@vue/runtime-core").Plugin;
export default _default;
