import type { M } from "ts-algebra";
import type { JSONSchema7 } from "../definitions";
import type { ParseSchema, ParseSchemaOptions } from "./index";
import type { MultipleTypesSchema } from "./multipleTypes";
import type { SingleTypeSchema } from "./singleType";
export declare type ConstSchema = JSONSchema7 & {
    const: unknown;
};
export declare type ParseConstSchema<SCHEMA extends ConstSchema, OPTIONS extends ParseSchemaOptions> = SCHEMA extends SingleTypeSchema ? IntersectConstAndTypeSchema<SCHEMA, OPTIONS> : SCHEMA extends MultipleTypesSchema ? IntersectConstAndTypeSchema<SCHEMA, OPTIONS> : ParseConst<SCHEMA>;
declare type IntersectConstAndTypeSchema<SCHEMA extends ConstSchema & (SingleTypeSchema | MultipleTypesSchema), OPTIONS extends ParseSchemaOptions> = M.$Intersect<ParseConst<SCHEMA>, ParseSchema<Omit<SCHEMA, "const">, OPTIONS>>;
declare type ParseConst<S extends ConstSchema> = M.Const<S["const"]>;
export {};
