import { EntityAccessor, EntityId } from '@contember/binding';
import { ComponentType, ReactNode } from 'react';
import { MessageFormatter } from '../../../../../i18n';
import { SelectEntityButtonProps } from '../../../collections';
import type { UploadDictionary } from '../../uploadDictionary';
import { ResolvedFileSelectionComponent } from './SelectFileDialog';
import { EntityConnector } from '../hooks/useConnectSelectedEntities';
export interface FileSelectionProps {
    onToggleSelect: (connector: EntityAccessor) => void;
    selectedEntityIds: EntityId[];
}
export interface SelectFileInputSelectionComponentProps<SFExtraProps extends {}> {
    fileSelectionComponent?: ComponentType<SFExtraProps & FileSelectionProps>;
    fileSelectionProps?: SFExtraProps;
    fileSelectionLabel?: ReactNode;
}
export declare type SelectFileInputPublicProps = SelectEntityButtonProps & {
    insertSelectedText?: string;
};
export declare type SelectFileInputProps<SFExtraProps extends {}> = Partial<SelectFileInputPublicProps> & {
    formatMessage: MessageFormatter<UploadDictionary>;
    onSelectConfirm: (selectedEntities: EntityConnector[]) => void;
    isMultiple: boolean;
    fileSelection?: ResolvedFileSelectionComponent<SFExtraProps>;
};
export declare const SelectFileInput: import("react").NamedExoticComponent<Partial<SelectFileInputPublicProps> & {
    formatMessage: MessageFormatter<UploadDictionary>;
    onSelectConfirm: (selectedEntities: EntityConnector[]) => void;
    isMultiple: boolean;
    fileSelection?: {
        dialogComponent: ComponentType<any>;
        dialogProps: any;
    } | undefined;
}>;
//# sourceMappingURL=SelectFileInput.d.ts.map