import { TransferItem } from '../transfer.model';
import { SelectionState, State } from './transfer.state';
declare const _default: {
    initialStateFn: <T>() => {
        initialItems: {
            source: never[];
            target: never[];
        };
        current: {
            source: never[];
            target: never[];
        };
        selections: {
            source: Set<TransferItem<T>>;
            target: Set<TransferItem<T>>;
        };
        operationsEnabled: {
            transfer: boolean;
            backtransfer: boolean;
            reset: boolean;
        };
    };
    initFn: <T_1>(payload: SelectionState<T_1>) => (state: State<T_1>) => {
        initialItems: {
            source: TransferItem<T_1>[];
            target: TransferItem<T_1>[];
        };
        current: {
            source: TransferItem<T_1>[];
            target: TransferItem<T_1>[];
        };
        selections: {
            source: Set<TransferItem<T_1>>;
            target: Set<TransferItem<T_1>>;
        };
        operationsEnabled: {
            transfer: boolean;
            backtransfer: boolean;
            reset: boolean;
        };
    };
    transferFn: <T_2>() => (state: State<T_2>) => {
        current: {
            source: TransferItem<T_2>[];
            target: TransferItem<T_2>[];
        };
        selections: {
            source: Set<TransferItem<T_2>>;
            target: Set<TransferItem<T_2>>;
        };
        operationsEnabled: {
            transfer: false;
            reset: true;
            backtransfer: boolean;
        };
        initialItems: SelectionState<T_2>;
    };
    backtransferFn: <T_3>() => (state: State<T_3>) => {
        current: {
            target: TransferItem<T_3>[];
            source: TransferItem<T_3>[];
        };
        selections: {
            target: Set<TransferItem<T_3>>;
            source: Set<TransferItem<T_3>>;
        };
        operationsEnabled: {
            backtransfer: false;
            reset: true;
            transfer: boolean;
        };
        initialItems: SelectionState<T_3>;
    };
    resetFn: <T_4>() => (state: State<T_4>) => {
        current: {
            source: TransferItem<T_4>[];
            target: TransferItem<T_4>[];
        };
        operationsEnabled: {
            reset: false;
            transfer: boolean;
            backtransfer: boolean;
        };
        initialItems: SelectionState<T_4>;
        selections: {
            source: Set<TransferItem<T_4>>;
            target: Set<TransferItem<T_4>>;
        };
    };
    selectAllSourceFn: <T_5>({ checked }: {
        checked: boolean;
    }) => (state: State<T_5>) => State<T_5>;
    selectAllTargetFn: <T_6>({ checked }: {
        checked: boolean;
    }) => (state: State<T_6>) => State<T_6>;
    selectionItemSourceFn: <T_7>({ item }: {
        item: TransferItem<T_7>;
    }) => (state: State<T_7>) => State<T_7>;
    selectionItemTargetFn: <T_8>({ item }: {
        item: TransferItem<T_8>;
    }) => (state: State<T_8>) => State<T_8>;
};
export default _default;
