import type { ZodLiteral } from 'zod';
import type { BooleanSchema, BooleanSchema_, NullSchema, NullSchema_, NumberSchema, NumberSchema_, StringSchema, StringSchema_ } from '../../../index.js';
import type { SchemaProps } from '../../../schema/types/schemaProps.js';
import type { Overwrite } from '../../../types/overwrite.js';
export type ZodLiteralAny = ZodLiteral<any>;
export type FromZodLiteral<ZOD_SCHEMA extends ZodLiteralAny, ROOT extends boolean = true, PROPS extends SchemaProps = {}> = ZOD_SCHEMA extends ZodLiteral<infer ZOD_SCHEMA_LITERAL> ? (ZOD_SCHEMA_LITERAL extends null ? ROOT extends true ? NullSchema_<Overwrite<PROPS, {
    enum: [ZOD_SCHEMA_LITERAL];
    putDefault: unknown;
}>> : NullSchema<Overwrite<PROPS, {
    enum: [ZOD_SCHEMA_LITERAL];
    putDefault: unknown;
}>> : never) | (ZOD_SCHEMA_LITERAL extends boolean ? ROOT extends true ? BooleanSchema_<Overwrite<PROPS, {
    enum: [ZOD_SCHEMA_LITERAL];
    putDefault: unknown;
}>> : BooleanSchema<Overwrite<PROPS, {
    enum: [ZOD_SCHEMA_LITERAL];
    putDefault: unknown;
}>> : never) | (ZOD_SCHEMA_LITERAL extends number ? ROOT extends true ? NumberSchema_<Overwrite<PROPS, {
    enum: [ZOD_SCHEMA_LITERAL];
    putDefault: unknown;
}>> : NumberSchema<Overwrite<PROPS, {
    enum: [ZOD_SCHEMA_LITERAL];
    putDefault: unknown;
}>> : never) | (ZOD_SCHEMA_LITERAL extends bigint ? ROOT extends true ? NumberSchema_<Overwrite<PROPS, {
    big: true;
    enum: [ZOD_SCHEMA_LITERAL];
    putDefault: unknown;
}>> : NumberSchema<Overwrite<PROPS, {
    big: true;
    enum: [ZOD_SCHEMA_LITERAL];
    putDefault: unknown;
}>> : never) | (ZOD_SCHEMA_LITERAL extends string ? ROOT extends true ? StringSchema_<Overwrite<PROPS, {
    enum: [ZOD_SCHEMA_LITERAL];
    putDefault: unknown;
}>> : StringSchema<Overwrite<PROPS, {
    enum: [ZOD_SCHEMA_LITERAL];
    putDefault: unknown;
}>> : never) : never;
export declare const fromZodLiteral: (zodLiteral: ZodLiteralAny) => NullSchema | BooleanSchema | NumberSchema | StringSchema;
