import { Schema, TsContext, ValidationContext } from '../schema'; export interface ObjectSchemaField { name: string; value: Schema; require: boolean; description?: string; } interface FieldOptions { require?: boolean; export?: boolean; description?: string; deprecated?: string; } export declare class ObjectSchema extends Schema { _name?: string; protected _fields: ObjectSchemaField[]; protected _rest?: { schema: Schema; of: 'string' | 'number' | RegExp; }; constructor(_name?: string); getChildren(): Schema[]; clone(): ObjectSchema; delete(name: string): this; field(name: string, value: Schema, options?: FieldOptions): this; fields(fields: [string, Schema, FieldOptions?][]): this; fieldBefore(before: string, name: string, value: Schema, options?: FieldOptions): this; fieldsBefore(before: string, fields: [string, Schema, FieldOptions?][]): this; fieldAfter(after: string, name: string, value: Schema, options?: FieldOptions): this; fieldsAfter(after: string, fields: [string, Schema, FieldOptions?][]): this; rest(schema: Schema, of?: 'string' | 'number' | RegExp): this; private setFieldNear; private insertOrReplaceField; toTypeScript(context: TsContext): string; toSchema(): object; validate(object: unknown, context: ValidationContext): void; } export {};