import { EntityAccessor, EntityId } from '@contember/react-binding';
import { ComponentType, ReactNode } from 'react';
import { MessageFormatter } from '@contember/react-i18n';
import { SelectEntityButtonProps } from '@contember/react-binding-ui';
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 type SelectFileInputPublicProps = SelectEntityButtonProps & {
    insertSelectedText?: string;
};
export type SelectFileInputProps<SFExtraProps extends {}> = Partial<SelectFileInputPublicProps> & {
    formatMessage: MessageFormatter<UploadDictionary>;
    onSelectConfirm: (selectedEntities: EntityConnector[]) => void;
    isMultiple: boolean;
    fileSelection?: ResolvedFileSelectionComponent<SFExtraProps>;
};
export declare const SelectFileInput: React.NamedExoticComponent<Partial<SelectFileInputPublicProps> & {
    formatMessage: MessageFormatter<UploadDictionary>;
    onSelectConfirm: (selectedEntities: EntityConnector[]) => void;
    isMultiple: boolean;
    fileSelection?: ResolvedFileSelectionComponent<any> | undefined;
}>;
//# sourceMappingURL=SelectFileInput.d.ts.map