export interface ITransformerParams {
    context?: Record<string, unknown>;
    value?: unknown;
}
export interface ITransformer {
    [x: string]: ({ context, value }: ITransformerParams, ...params: unknown[]) => unknown;
}
export interface IDynamicArrayMapper {
    arraySource: string;
    arrayTemplate: Record<string, unknown>;
    arrayOmitIfEmpty?: boolean;
    ignoreIndexs?: number[];
    simpleArray?: boolean;
}
export interface ITransformerDefinition {
    fields?: string[];
    transformer: string;
    transformerParams?: unknown[];
    defaultValue?: unknown;
    allowNull?: boolean;
}
export interface ITemplateOptions {
    omitEmptyFields?: boolean;
    omitEmptyCollections?: boolean;
}
export type TransformerElement = ITransformerDefinition | IDynamicArrayMapper;
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;
    isTransformers(object: Record<string, unknown>): boolean;
    isStaticArrayMapper(object: Record<string, unknown>): boolean;
    isDynamicArrayMapper(object: Record<string, unknown>): boolean;
    isValidObject(object: object): boolean;
    checkValue(value: unknown): boolean;
    transformPayload<T>(obj: object, template?: Record<string, unknown>): T;
}
//# sourceMappingURL=interfaces.d.ts.map