import { AnyAttribute, Attribute, ComponentAttribute, DynamicZoneAttribute, Model, RelationalAttribute } from '../types'; export interface Path { raw: string | null; attribute: string | null; } export interface Parent { attribute?: Attribute; key: string | null; path: Path; schema: Model; } export interface TraverseOptions { schema: Model; path?: Path; parent?: Parent; getModel(uid: string): Model; } export interface VisitorOptions { data: unknown; value: unknown; schema: Model; key: string; attribute?: AnyAttribute; path: Path; parent?: Parent; getModel(uid: string): Model; } export type Traverse = (visitor: Visitor, options: TraverseOptions, data: unknown) => Promise; export interface Visitor { (visitorOptions: VisitorOptions, opts: Pick): void; } interface Interceptor { predicate(data: unknown): data is T; handler(visitor: Visitor, options: TraverseOptions, data: T, recurseOptions: { recurse: Traverse; }): void; } interface ParseUtils { transform(data: T): unknown; remove(key: string, data: T): unknown; set(key: string, value: unknown, data: T): unknown; keys(data: T): string[]; get(key: string, data: T): unknown; } interface Parser { predicate(data: unknown): data is T; parser(data: T): ParseUtils; } interface Ignore { (ctx: Context): boolean; } interface AttributeHandler { predicate(ctx: Context): boolean; handler(ctx: Context, opts: Pick): void; } interface CommonHandler { predicate(ctx: Context): boolean; handler(ctx: Context, opts: Pick): void; } export interface TransformUtils { remove(key: string): void; set(key: string, value: unknown): void; recurse: Traverse; } interface Context { key: string; value: unknown; attribute: AttributeType; schema: Model; path: Path; data: unknown; visitor: Visitor; parent?: Parent; getModel(uid: string): Model; } declare const _default: () => { traverse: Traverse; intercept(predicate: Interceptor['predicate'], handler: Interceptor['handler']): any; parse(predicate: (data: unknown) => data is T_1, parser: (data: T_1) => ParseUtils): any; ignore(predicate: Ignore): any; on(predicate: CommonHandler['predicate'], handler: CommonHandler['handler']): any; onAttribute(predicate: AttributeHandler['predicate'], handler: AttributeHandler['handler']): any; onRelation(handler: AttributeHandler['handler']): any; onMedia(handler: AttributeHandler['handler']): any; onComponent(handler: AttributeHandler['handler']): any; onDynamicZone(handler: AttributeHandler['handler']): any; }; export default _default; //# sourceMappingURL=factory.d.ts.map