import { type TSchema } from './schema.mjs'; import { type Static } from './static.mjs'; /** Applies a Refine check to the given type. */ export type TRefineAdd = ('~refine' extends keyof Type ? Type : TRefine); /** Applies a Refine check to the given type. */ export declare function RefineAdd(type: Type, refinement: TRefinement): TRefineAdd; /** Represents a type with embedded Refine check. */ export type TRefine = (Type & { '~refine': TRefinement[]; }); export type TRefineCheckCallback = (value: Value) => boolean; export type TRefineErrorCallback = (value: Value) => string; export interface TRefinement { check: TRefineCheckCallback; error: TRefineErrorCallback; } /** Refines a type with an explicit check */ export declare function Refine>(type: Type, check: TRefineCheckCallback, error: TRefineErrorCallback): TRefineAdd; /** Refines a type with an explicit check */ export declare function Refine>(type: Type, check: TRefineCheckCallback): TRefineAdd; /** Returns true if the given value is a TRefinement. */ export declare function IsRefinement(value: unknown): value is TRefinement; /** Returns true if the given value is a TRefine. */ export declare function IsRefine(value: unknown): value is TRefine;