import type { BackendFactory, DragDropManager, Unsubscribe } from 'dnd-core';
import type { BackendEntry, MultiBackendSwitcher, PreviewList, Transition } from './types';
export type MultiBackendContext = unknown;
export type MultiBackendPipelineStep = {
    id: string;
    backend: BackendFactory;
    transition?: Transition;
    preview?: boolean;
    skipDispatchOnTransition?: boolean;
    options?: unknown;
};
export type MultiBackendPipeline = MultiBackendPipelineStep[];
export type MultiBackendOptions = {
    backends: MultiBackendPipeline;
};
export declare class MultiBackendImpl implements MultiBackendSwitcher {
    #private;
    private static isSetUp;
    constructor(manager: DragDropManager, context?: MultiBackendContext, options?: MultiBackendOptions);
    setup: () => void;
    teardown: () => void;
    connectDragSource: (sourceId: unknown, node?: unknown, options?: unknown) => Unsubscribe;
    connectDragPreview: (sourceId: unknown, node?: unknown, options?: unknown) => Unsubscribe;
    connectDropTarget: (sourceId: unknown, node?: unknown, options?: unknown) => Unsubscribe;
    profile: () => Record<string, number>;
    previewEnabled: () => boolean;
    previewsList: () => PreviewList;
    backendsList: () => BackendEntry[];
}
