export interface Parameters<T extends boolean = false, U extends boolean = false> {
    accept: string | string[];
    multiple: T;
    strict: U;
}
declare type PickFile<T extends boolean = false, U extends boolean = false> = T extends false ? (U extends true ? File : FileList) : FileList;
/**
 * Call file select dialog programmatically.
 * @param {object} [parameters] optional
 * @returns {Promise} Promise <File | FileList> if strict is false, return FileList object, if multiple is false and strict is true return File object
 */
export declare const fileDialog: <T extends boolean = false, U extends boolean = false>(parameters?: Partial<Parameters<T, U>> | undefined) => Promise<PickFile<T, U>>;
export declare const resolver: <T extends boolean, U extends boolean>(fileList: HTMLInputElement['files'], multiple: T, strict: U) => Promise<PickFile<T, U>>;
export declare const getFileListObj: <T extends boolean, U extends boolean>(files: NonNullable<HTMLInputElement['files']>, multiple: T, strict: U) => PickFile<T, U> | null;
export declare const createFileInputElement: ({ accept, multiple }: Pick<HTMLInputElement, 'accept' | 'multiple'>) => HTMLInputElement;
export {};
//# sourceMappingURL=file-dialog.d.ts.map