import { LoomFile } from "@loom-io/core";
import { FileConverter } from "./definitions.js";
export interface CombinedConverterOptions {
    failOnNoConverter?: boolean;
}
export declare class CombinedConverter<T> implements FileConverter {
    protected converters: Array<FileConverter<T>>;
    protected config: CombinedConverterOptions;
    constructor(converters: Array<FileConverter<T>> | FileConverter<T>, options?: CombinedConverterOptions);
    protected converterSetAction(action: "add" | "delete", ...converters: Array<FileConverter<T>>): void;
    set options(options: CombinedConverterOptions);
    get options(): CombinedConverterOptions;
    addConverter(converter: FileConverter<T>, ...converters: Array<FileConverter<T>>): void;
    removeConverter(converter: FileConverter<T>, ...converters: Array<FileConverter<T>>): void;
    protected getConverter(file: LoomFile): Promise<FileConverter<T> | undefined>;
    verify(file: LoomFile): Promise<boolean>;
    unify(file: LoomFile, content: T): Promise<void>;
    parse(file: LoomFile): Promise<T | void>;
}
