import { HasProps } from "../../core/has_props"; import type { PlainObject } from "../../core/types"; import { Kinds, Kind } from "../../core/kinds"; import * as p from "../../core/properties"; import type { VNode } from "preact"; export declare abstract class BasePrinter { null(): VNode; token(val: string): VNode; boolean(val: boolean): VNode; number(val: number): VNode; string(val: string): VNode; symbol(val: symbol): VNode; } export declare class OpaqueKindPrinter extends BasePrinter { to_html(obj: unknown): VNode; ref(obj: Kinds.Ref): VNode; struct(obj: Kinds.Struct<{ [key: string]: unknown; }>): VNode; partial_struct(obj: Kinds.PartialStruct<{ [key: string]: unknown; }>): VNode; func(obj: Kinds.Func): VNode; kind(obj: Kind): VNode; } export declare class KindPrinter extends BasePrinter { private _precedence_queue; to_html(obj: unknown): VNode; protected _to_html(obj: unknown): VNode; precedence(kind: unknown): number; primitive(obj: string): VNode; ref(obj: Kinds.Ref): VNode; nullable(obj: Kinds.Nullable): VNode; opt(obj: Kinds.Opt): VNode; list(obj: Kinds.List): VNode; set(obj: Kinds.Set): VNode; dict(obj: Kinds.Dict): VNode; mapping(obj: Kinds.Mapping): VNode; tuple(obj: Kinds.Tuple<[unknown]>): VNode; or(obj: Kinds.Or<[unknown]>): VNode; and(obj: Kinds.And): VNode; enum(obj: Kinds.Enum): VNode; struct(obj: Kinds.Struct<{ [key: string]: unknown; }>): VNode; partial_struct(obj: Kinds.Struct<{ [key: string]: unknown; }>): VNode; func(obj: Kinds.Func): VNode; regex(obj: Kinds.Regex): VNode; prefixed_str(obj: Kinds.PrefixedStr): VNode; } export declare class ValuePrinter extends BasePrinter { readonly click?: ((obj: unknown) => void) | undefined; readonly max_items: number; readonly max_depth: number; protected readonly visited: WeakSet; protected depth: number; constructor(click?: ((obj: unknown) => void) | undefined, max_items?: number, max_depth?: number); to_html(obj: unknown): VNode; array(obj: unknown[]): VNode; iterable(obj: Iterable): VNode; object(obj: PlainObject): VNode; model(obj: HasProps): VNode; property(obj: p.Property): VNode; } //# sourceMappingURL=printers.d.ts.map