import { FormatPrettier, FormatPrettierInput } from '../format/code/shared.js';
import { Convert, ConvertInputFormat } from '../node.js';
export declare enum Call {
    Convert = "convert",
    Format = "format"
}
export type CallInputMap<C extends ConvertInputFormat, F extends FormatPrettier> = {
    [Call.Convert]: Convert<C>;
    [Call.Format]: FormatPrettierInput<F>;
};
export type CallInput<T extends Call, C extends ConvertInputFormat, F extends FormatPrettier> = T extends keyof CallInputMap<C, F> ? CallInputMap<C, F>[T] & {
    action: T;
} : never;
export declare function call<T extends Call, C extends ConvertInputFormat, F extends FormatPrettier>(input: CallInput<T, C, F>): Promise<string | import("../node.js").ConvertDocumentWithCalibreNodeOutput | undefined>;
