import type { SchemaFeature } from './features.ts';
import type { Schema } from './json-typedef-js-fork/schema.ts';
type Part = {
    metadata: {
        section: string;
    };
    definitions: {
        [definition: string]: Schema;
    };
};
export declare function collectSchema({ root, parts, features, typesToSkip, skipInternal }: {
    root: Schema;
    parts: {
        [filename: string]: Part;
    };
    features?: SchemaFeature[];
    typesToSkip?: string[];
    skipInternal?: boolean;
}): {
    metadata?: {
        formats?: Record<string, {
            description: string;
            validation: {
                type: 'regex';
                regex: string;
            } | {
                type: 'web_url';
            };
        }>;
        features?: string[];
        format?: string;
        examples?: string[];
        pattern?: {
            value: string;
            description: string;
        };
        validation?: {
            minSize?: number;
            maxSize?: number;
            minLength?: number;
            maxLength?: number;
            min?: number;
            max?: number;
            uniqueTags?: boolean;
            matchFieldWithParent?: {
                parent: string[];
                self: string[];
            };
        };
        oneOf?: {
            strict?: boolean;
            properties: string[];
        };
        section?: string;
        description?: string;
        refUnion?: {
            [tagValue: string]: string;
        };
        deprecated?: boolean;
        internal?: boolean;
        emitEnum?: string;
        tsRicosNode?: boolean;
        tsRicosNodesChildren?: boolean;
    };
    nullable?: boolean;
    definitions: Record<string, Schema>;
} | {
    properties?: {
        [name: string]: Schema;
    };
    optionalProperties: {
        [name: string]: Schema;
    };
    additionalProperties?: boolean;
    metadata?: {
        formats?: Record<string, {
            description: string;
            validation: {
                type: 'regex';
                regex: string;
            } | {
                type: 'web_url';
            };
        }>;
        features?: string[];
        format?: string;
        examples?: string[];
        pattern?: {
            value: string;
            description: string;
        };
        validation?: {
            minSize?: number;
            maxSize?: number;
            minLength?: number;
            maxLength?: number;
            min?: number;
            max?: number;
            uniqueTags?: boolean;
            matchFieldWithParent?: {
                parent: string[];
                self: string[];
            };
        };
        oneOf?: {
            strict?: boolean;
            properties: string[];
        };
        section?: string;
        description?: string;
        refUnion?: {
            [tagValue: string]: string;
        };
        deprecated?: boolean;
        internal?: boolean;
        emitEnum?: string;
        tsRicosNode?: boolean;
        tsRicosNodesChildren?: boolean;
    };
    nullable?: boolean;
    definitions: Record<string, Schema>;
} | {
    properties: {
        [name: string]: Schema;
    };
    optionalProperties?: {
        [name: string]: Schema;
    };
    additionalProperties?: boolean;
    metadata?: {
        formats?: Record<string, {
            description: string;
            validation: {
                type: 'regex';
                regex: string;
            } | {
                type: 'web_url';
            };
        }>;
        features?: string[];
        format?: string;
        examples?: string[];
        pattern?: {
            value: string;
            description: string;
        };
        validation?: {
            minSize?: number;
            maxSize?: number;
            minLength?: number;
            maxLength?: number;
            min?: number;
            max?: number;
            uniqueTags?: boolean;
            matchFieldWithParent?: {
                parent: string[];
                self: string[];
            };
        };
        oneOf?: {
            strict?: boolean;
            properties: string[];
        };
        section?: string;
        description?: string;
        refUnion?: {
            [tagValue: string]: string;
        };
        deprecated?: boolean;
        internal?: boolean;
        emitEnum?: string;
        tsRicosNode?: boolean;
        tsRicosNodesChildren?: boolean;
    };
    nullable?: boolean;
    definitions: Record<string, Schema>;
} | {
    discriminator: string;
    mapping: {
        [name: string]: Schema;
    };
    metadata?: {
        formats?: Record<string, {
            description: string;
            validation: {
                type: 'regex';
                regex: string;
            } | {
                type: 'web_url';
            };
        }>;
        features?: string[];
        format?: string;
        examples?: string[];
        pattern?: {
            value: string;
            description: string;
        };
        validation?: {
            minSize?: number;
            maxSize?: number;
            minLength?: number;
            maxLength?: number;
            min?: number;
            max?: number;
            uniqueTags?: boolean;
            matchFieldWithParent?: {
                parent: string[];
                self: string[];
            };
        };
        oneOf?: {
            strict?: boolean;
            properties: string[];
        };
        section?: string;
        description?: string;
        refUnion?: {
            [tagValue: string]: string;
        };
        deprecated?: boolean;
        internal?: boolean;
        emitEnum?: string;
        tsRicosNode?: boolean;
        tsRicosNodesChildren?: boolean;
    };
    nullable?: boolean;
    definitions: Record<string, Schema>;
} | {
    elements: Schema;
    metadata?: {
        formats?: Record<string, {
            description: string;
            validation: {
                type: 'regex';
                regex: string;
            } | {
                type: 'web_url';
            };
        }>;
        features?: string[];
        format?: string;
        examples?: string[];
        pattern?: {
            value: string;
            description: string;
        };
        validation?: {
            minSize?: number;
            maxSize?: number;
            minLength?: number;
            maxLength?: number;
            min?: number;
            max?: number;
            uniqueTags?: boolean;
            matchFieldWithParent?: {
                parent: string[];
                self: string[];
            };
        };
        oneOf?: {
            strict?: boolean;
            properties: string[];
        };
        section?: string;
        description?: string;
        refUnion?: {
            [tagValue: string]: string;
        };
        deprecated?: boolean;
        internal?: boolean;
        emitEnum?: string;
        tsRicosNode?: boolean;
        tsRicosNodesChildren?: boolean;
    };
    nullable?: boolean;
    definitions: Record<string, Schema>;
} | {
    enum: string[];
    metadata?: {
        formats?: Record<string, {
            description: string;
            validation: {
                type: 'regex';
                regex: string;
            } | {
                type: 'web_url';
            };
        }>;
        features?: string[];
        format?: string;
        examples?: string[];
        pattern?: {
            value: string;
            description: string;
        };
        validation?: {
            minSize?: number;
            maxSize?: number;
            minLength?: number;
            maxLength?: number;
            min?: number;
            max?: number;
            uniqueTags?: boolean;
            matchFieldWithParent?: {
                parent: string[];
                self: string[];
            };
        };
        oneOf?: {
            strict?: boolean;
            properties: string[];
        };
        section?: string;
        description?: string;
        refUnion?: {
            [tagValue: string]: string;
        };
        deprecated?: boolean;
        internal?: boolean;
        emitEnum?: string;
        tsRicosNode?: boolean;
        tsRicosNodesChildren?: boolean;
    };
    nullable?: boolean;
    definitions: Record<string, Schema>;
} | {
    ref: string;
    metadata?: {
        formats?: Record<string, {
            description: string;
            validation: {
                type: 'regex';
                regex: string;
            } | {
                type: 'web_url';
            };
        }>;
        features?: string[];
        format?: string;
        examples?: string[];
        pattern?: {
            value: string;
            description: string;
        };
        validation?: {
            minSize?: number;
            maxSize?: number;
            minLength?: number;
            maxLength?: number;
            min?: number;
            max?: number;
            uniqueTags?: boolean;
            matchFieldWithParent?: {
                parent: string[];
                self: string[];
            };
        };
        oneOf?: {
            strict?: boolean;
            properties: string[];
        };
        section?: string;
        description?: string;
        refUnion?: {
            [tagValue: string]: string;
        };
        deprecated?: boolean;
        internal?: boolean;
        emitEnum?: string;
        tsRicosNode?: boolean;
        tsRicosNodesChildren?: boolean;
    };
    nullable?: boolean;
    definitions: Record<string, Schema>;
} | {
    type: import("./json-typedef-js-fork/schema.ts").Type;
    metadata?: {
        formats?: Record<string, {
            description: string;
            validation: {
                type: 'regex';
                regex: string;
            } | {
                type: 'web_url';
            };
        }>;
        features?: string[];
        format?: string;
        examples?: string[];
        pattern?: {
            value: string;
            description: string;
        };
        validation?: {
            minSize?: number;
            maxSize?: number;
            minLength?: number;
            maxLength?: number;
            min?: number;
            max?: number;
            uniqueTags?: boolean;
            matchFieldWithParent?: {
                parent: string[];
                self: string[];
            };
        };
        oneOf?: {
            strict?: boolean;
            properties: string[];
        };
        section?: string;
        description?: string;
        refUnion?: {
            [tagValue: string]: string;
        };
        deprecated?: boolean;
        internal?: boolean;
        emitEnum?: string;
        tsRicosNode?: boolean;
        tsRicosNodesChildren?: boolean;
    };
    nullable?: boolean;
    definitions: Record<string, Schema>;
} | {
    values: Schema;
    metadata?: {
        formats?: Record<string, {
            description: string;
            validation: {
                type: 'regex';
                regex: string;
            } | {
                type: 'web_url';
            };
        }>;
        features?: string[];
        format?: string;
        examples?: string[];
        pattern?: {
            value: string;
            description: string;
        };
        validation?: {
            minSize?: number;
            maxSize?: number;
            minLength?: number;
            maxLength?: number;
            min?: number;
            max?: number;
            uniqueTags?: boolean;
            matchFieldWithParent?: {
                parent: string[];
                self: string[];
            };
        };
        oneOf?: {
            strict?: boolean;
            properties: string[];
        };
        section?: string;
        description?: string;
        refUnion?: {
            [tagValue: string]: string;
        };
        deprecated?: boolean;
        internal?: boolean;
        emitEnum?: string;
        tsRicosNode?: boolean;
        tsRicosNodesChildren?: boolean;
    };
    nullable?: boolean;
    definitions: Record<string, Schema>;
};
export {};
//# sourceMappingURL=collect-schema.d.ts.map