import { CustomizableOptions } from '../../composables/useCustomizableOptions';
import { AxiosResponse } from 'axios';
import { locales as defaultLocales } from './locales';
type State = 'idle' | 'loading' | 'success' | 'error';
export interface FileInfo {
    name: string;
    type: string | undefined;
}
export interface Props {
    filePromise: () => Promise<AxiosResponse<Blob>>;
    fallbackFilename?: string;
    backgroundColor?: string;
    dark?: boolean;
    locales?: typeof defaultLocales;
}
type __VLS_Props = Props & CustomizableOptions;
/**
 * Get filename and content type from headers
 */
declare function getFileInfo(header: Record<string, string>): FileInfo;
declare function download(): Promise<void>;
declare function __VLS_template(): {
    attrs: Partial<{}>;
    slots: {
        icon?(_: {}): any;
        default?(_: {}): any;
    };
    refs: {};
    rootEl: any;
};
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {
    getFileInfo: typeof getFileInfo;
    download: typeof download;
    state: import('vue').Ref<State, State>;
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
    success: (...args: any[]) => void;
    error: (...args: any[]) => void;
}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
    onSuccess?: ((...args: any[]) => any) | undefined;
    onError?: ((...args: any[]) => any) | undefined;
}>, {
    dark: boolean;
    locales: typeof defaultLocales;
    backgroundColor: string;
    fallbackFilename: string;
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
export default _default;
type __VLS_WithTemplateSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};
