import { color, record } from '@synnaxlabs/x';
import { ReactElement, ReactNode } from 'react';
import { Button } from '../button';
import { RenderProp } from '../component/renderProp';
import { Haul } from '../haul';
import { Icon } from '../icon';
import { Select } from '.';
import { Tag } from '../tag';
export interface MultipleEntry<K extends record.Key> extends record.KeyedNamed<K> {
    icon?: Icon.ReactElement;
    color?: color.Crude;
    alias?: string;
}
export interface MultipleTagProps<K extends record.Key> extends Omit<Tag.TagProps, "onDragStart"> {
    itemKey: K;
    onDragStart: (key: K) => void;
}
export interface MultipleTriggerProps<K extends record.Key> extends Pick<Button.ButtonProps, "variant" | "disabled"> {
    haulType?: string;
    placeholder?: ReactNode;
    icon?: Icon.ReactElement;
    hideTags?: boolean;
    children?: RenderProp<MultipleTagProps<K>>;
}
export declare const staticCanDrop: <K extends record.Key>({ items: entities }: Haul.DraggingState, haulType: string, value: K[] | readonly K[], disabled?: boolean) => boolean;
export declare const MultipleTrigger: <K extends record.Key>({ haulType, disabled, placeholder, variant, icon, hideTags, children, }: MultipleTriggerProps<K>) => ReactElement;
//# sourceMappingURL=MultipleTrigger.d.ts.map