import { Schema, type ISchemaOptions } from "../schema/schema"; import type { Static, StaticCoerced } from "../static"; export type TRefType = Schema & { $id: string; }; export declare class RefType : T, Coerced = T extends TRefType ? StaticCoerced : T> extends Schema { readonly $ref: Ref; constructor(ref: T, $ref: Ref); } export declare const ref: (ref: T, $ref?: Ref) => RefType : T, T extends TRefType ? StaticCoerced : T>; export declare const refId: ($ref: Ref) => RefType; export declare const recursive: (cb: (thisSchema: Schema) => T) => T;