import type { PropertySchema, ShapeJSON } from '../project-schema/index.ts';
export type ContentTransform = (schema: PropertySchema, obj: unknown, name?: string) => unknown;
export type SourceKeyTransform = (name: string, schema: PropertySchema, parent: unknown) => string | string[];
export type KeyTransform = (name: string, schema: PropertySchema, sourceKey?: string) => string;
export type PropertyTransform = {
    keyTransform?: KeyTransform;
    filter(schema: PropertySchema, name: string, shape?: ShapeJSON): boolean;
    process(value: unknown, schema: PropertySchema & {
        $parent?: PropertySchema;
    }, name: string, shape: ShapeJSON | undefined, next: (value: unknown, schema: PropertySchema, name: string) => unknown): unknown;
};
export type SchemaType = '*' | 'object' | 'array' | 'string' | 'number' | 'integer' | 'boolean';
export type PropertyTransformMap = {
    [key in SchemaType]?: PropertyTransform[];
};
