import { ExtractPropTypes, PropType } from 'vue';
import { ConfigurableProps } from '@vexip-ui/config';
import { TransferFilter, TransferKeyConfig, TransferSlots } from './symbol';
export type RawOption = string | Record<string, any>;
export type Values = (string | number)[];
export type SelectHandler = (type: 'source' | 'target', selected: {
    source: Values;
    target: Values;
}, data: {
    source: RawOption[];
    target: RawOption[];
}) => void;
export declare const transferProps: {
    inherit: PropType<boolean>;
    state: PropType<"default" | "success" | "error" | "warning">;
    locale: PropType<Partial<{
        source: string;
        target: string;
        empty: string;
        reverse: string;
        search: string;
    }>>;
    options: PropType<RawOption[]>;
    value: PropType<Values>;
    disabled: PropType<boolean>;
    paged: PropType<boolean>;
    filter: PropType<boolean | TransferFilter>;
    emptyText: PropType<string>;
    keyConfig: PropType<TransferKeyConfig>;
    optionHeight: PropType<number>;
    ignoreCase: PropType<boolean>;
    sourceTitle: PropType<string>;
    targetTitle: PropType<string>;
    deepState: PropType<boolean>;
    loading: PropType<boolean>;
    loadingIcon: PropType<any>;
    loadingLock: PropType<boolean>;
    loadingEffect: PropType<string>;
    slots: PropType<TransferSlots>;
    onChange: PropType<((values: Values) => void) | ((values: Values) => void)[]>;
    onSelect: PropType<SelectHandler | SelectHandler[]>;
};
export type TransferProps = ExtractPropTypes<typeof transferProps>;
export type TransferCProps = ConfigurableProps<TransferProps>;
