import * as schema from '../../schema'; import { AbsType } from './AbsType'; import type { ExcludeFromTuple, PickFromTuple } from '../../util/types'; import type { SchemaOf, SchemaOfObjectFields, Type } from '../types'; export declare class KeyType extends AbsType>> { readonly key: K; readonly val: V; readonly optional: boolean; constructor(key: K, val: V); getSchema(): schema.KeySchema>; getOptions(): schema.Optional>>; protected toStringTitle(): string; toString(tab?: string): string; } export declare class KeyOptType extends KeyType { readonly key: K; readonly val: V; readonly optional: boolean; constructor(key: K, val: V); protected toStringTitle(): string; } export declare class ObjType | KeyOptType)[] = (KeyType | KeyOptType)[]> extends AbsType>> { readonly keys: F; constructor(keys: F); private _key; /** * Adds a property to the object type. * @param key The key of the property. * @param value The value type of the property. * @param options Optional schema options for the property. * @returns A new object type with the added property. */ prop(key: K, value: V, options?: schema.Optional>>): ObjType<[...F, KeyType]>; /** * Adds an optional property to the object type. * @param key The key of the property. * @param value The value type of the property. * @param options Optional schema options for the property. * @returns A new object type with the added property. */ opt(key: K, value: V, options?: schema.Optional>>): ObjType<[...F, KeyOptType]>; getSchema(): schema.ObjSchema>; getOptions(): schema.Optional>>; getField>>>(key: K): KeyType | undefined; extend[]>(o: ObjType): ObjType<[...F, ...F2]>; omit>>>(key: K): ObjType>>; pick>>>(key: K): ObjType>>; toString(tab?: string): string; } //# sourceMappingURL=ObjType.d.ts.map