import { type TemplateTransform } from './template-transform-type.js';
export type ValueInsertion = {
    index: number;
    value: unknown;
};
export type ValueTransformCallback = (lastNewString: string, currentLitString: string, currentValue: unknown) => {
    replacement: unknown;
    getExtraValues: ((currentValue: unknown) => unknown[]) | undefined;
} | undefined;
export declare function getTransformedTemplate<PossibleValues>(templateStringsKey: TemplateStringsArray, values: PossibleValues[], fallbackTransform: () => TemplateTransform): {
    strings: TemplateStringsArray;
    values: PossibleValues[];
};
export type TransformTemplateParams<PossibleValues> = Readonly<{
    inputTemplateStrings: TemplateStringsArray;
    inputValues: PossibleValues[];
    transformValue: ValueTransformCallback;
    assertValidString?: ((templateStringPart: string) => void) | undefined;
}>;
export declare function transformTemplate<PossibleValues>({ inputTemplateStrings, inputValues, transformValue, assertValidString, }: TransformTemplateParams<PossibleValues>): TemplateTransform;
