import { Schema, symbol, type ISchemaOptions, type StrictOptions, Node, type WalkOptions } from "../schema/schema"; import type { Merge, OptionalUndefined, Simplify, Static, StaticCoerced, Writeable } from "../static"; export type TProperties = { [key: string]: Schema; }; export type TProperties2

= { [K in keyof P]: P[K] extends Schema ? P[K] : never; }; export type ObjectStatic = Simplify; }>>>; export type ObjectCoerced = Simplify; }>>>; export type ObjectDefaults = Simplify>>; export interface IObjectOptions extends ISchemaOptions { $defs?: Record; patternProperties?: Record; additionalProperties?: Schema | false; unevaluatedProperties?: Schema | false; dependencies?: Record; dependentRequired?: Record; dependentSchemas?: Record; minProperties?: number; maxProperties?: number; propertyNames?: Schema; } type IRawObjectOptions = IObjectOptions & { required?: string[]; }; export declare class ObjectSchema extends Schema : Simplify & { [key: string]: unknown; }>>, O extends { additionalProperties: false; } ? ObjectCoerced

: Simplify & { [key: string]: unknown; }>>> { readonly type = "object"; properties: P; required: string[] | undefined; constructor(properties: P, o?: O & IRawObjectOptions); strict(): ObjectSchema>; partial(): ObjectSchema<{ [Key in keyof P]: P[Key] extends Schema ? Schema : never; }, O>; children(opts?: WalkOptions): Node[]; } export declare const object: , const O extends IObjectOptions>(properties: P, options?: StrictOptions) => ObjectSchema & O; export declare const strictObject: , const O extends IObjectOptions>(properties: P, options?: StrictOptions) => ObjectSchema>; export declare const partialObject: , const O extends IObjectOptions>(properties: P, options?: StrictOptions) => ObjectSchema<{ [Key in keyof P]: P[Key] extends Schema ? Schema : never; }, O>; export {};