import { GeneratorMode, Ports, ResponseContent } from "./elm.min.js";
export interface TravelmAgencyInstance {
    withElmApp: <T>(consumer: (ports: Ports) => Promise<T>, devMode?: boolean) => Promise<T>;
    sendTranslations: (filePaths: string[], devMode?: boolean) => Promise<void>;
    finishModule: (opts: FinishModuleOptions) => Promise<ResponseContent>;
}
export interface FinishModuleOptions {
    elmPath: string;
    generatorMode?: GeneratorMode | null;
    addContentHash: boolean;
    devMode?: boolean;
    i18nArgFirst?: boolean;
    prefixFileIdentifier?: boolean;
    customHtmlModule?: string;
    customHtmlAttributesModule?: string;
}
export declare function createInstance(): TravelmAgencyInstance;
export type Options = ({
    generatorMode: "inline";
} & InlineOptions) | ({
    generatorMode: "dynamic";
} & DynamicOptions);
interface InlineOptions {
    elmPath: string;
    translationDir: string;
    addContentHash: boolean;
    devMode: boolean;
    i18nArgFirst: boolean;
    prefixFileIdentifier: boolean;
    customHtmlModule?: string;
    customHtmlAttributesModule?: string;
}
interface DynamicOptions extends InlineOptions {
    jsonPath: string;
}
export declare const run: (options: Options) => Promise<void>;
export {};
