import { Value } from '../../value/Value'; import type { Printable } from 'tree-dump/lib/types'; import type * as schema from '../../schema'; import type { SchemaExample } from '../../schema'; import type { BaseType, ModuleType } from '../types'; export declare abstract class AbsType implements BaseType, Printable { readonly schema: S; /** Default type system to use, if any. */ system?: ModuleType; readonly _validators: [validator: (value: unknown) => void, name?: string][]; constructor(schema: S); sys(system: ModuleType | undefined): this; getSystem(): ModuleType; kind(): S['kind']; value(data: schema.TypeOf): Value; /** * @todo Add ability to export the whole schema, including aliases. */ getSchema(): S; /** * Sets a custom runtime validator for this type. * * @param validator Function that validates the value of this type. * @returns `this` for chaining. */ validator(validator: (value: schema.TypeOf) => void, name?: string): this; options(options: schema.Optional>): this; title(title: string): this; intro(intro: string): this; description(description: string): this; default(value: schema.Schema['default']): this; example(value: schema.TypeOf, title?: SchemaExample['title'], options?: Omit): this; getOptions(): schema.Optional; alias(name: K): import("./AliasType").AliasType; protected toStringTitle(): string; protected toStringOptions(): string; toString(tab?: string): string; } //# sourceMappingURL=AbsType.d.ts.map