export interface ITransformerParams {
    context?: any;
    value?: any;
}
export interface ITransformer {
    [x: string]: ({ context, value }: ITransformerParams, ...params: any) => any;
}
export interface ITemplateOptions {
    omitEmptyFields?: boolean;
}
export interface ITemplateModule {
    setContext(context: Record<string, unknown>): void;
    setTemplate(template: Record<string, unknown>): void;
    setTransformers(transformers: ITransformer): void;
    setOptions(settings: ITemplateOptions): void;
    verifyTransformer(transformer: ITransformer, methodName: string): boolean;
    runTransformer(transformer: string, value?: unknown): unknown | null;
    setValueByCondition<U>(object: U, key: string, value: unknown): U;
    isTransformer(object: Record<string, unknown>): boolean;
    isStaticArrayMapper(object: Record<string, unknown>): boolean;
    isDynamicArrayMapper(object: Record<string, unknown>): boolean;
    isValidObject(object: object): boolean;
    checkValue(value: any): boolean;
    transformPayload<T>(obj: object, template?: Record<string, unknown>): T;
}
