import * as Generator from '@postxl/generator';
import { Field, FieldDatabaseNative, FieldDiscriminatedUnion, FieldId, FieldRelation, FieldScalar } from '@postxl/schema';
import { ContextResult } from './decoders.generator';
/**
 * Returns the string defining the zod decoder for a given field.
 */
export declare const getFieldDecoder: ({ field, context, imports, includeTransformer, allowOptional, }: {
    field: Field;
    context: ContextResult;
    imports: Generator.ImportGenerator;
    includeTransformer?: boolean;
    allowOptional?: boolean;
}) => string;
type NativeDecoder = `${string}: ${string}`;
export declare function getFieldDecoderForDatabaseNative({ field, context, imports, includeTransformer, allowOptional, }: {
    field: FieldDatabaseNative;
    context: ContextResult;
    imports: Generator.ImportGenerator;
    includeTransformer?: boolean;
    allowOptional?: boolean;
}): NativeDecoder;
type ZodFieldDecoder = `${string}(${string})`;
export declare function getFieldDatabaseNativeFieldDecoders({ field, context, imports, includeTransformer, allowOptional, }: {
    field: FieldDatabaseNative;
    context: ContextResult;
    imports: Generator.ImportGenerator;
    includeTransformer?: boolean;
    allowOptional?: boolean;
}): ZodFieldDecoder[];
export declare function getFieldDecoderForId({ field, context, imports, includeTransformer, }: {
    field: FieldId;
    context: ContextResult;
    imports: Generator.ImportGenerator;
    includeTransformer?: boolean;
}): ZodFieldDecoder[];
export declare function getFieldDecoderForScalar({ field, allowOptional, }: {
    field: FieldScalar;
    allowOptional?: boolean;
}): ZodFieldDecoder[];
export declare function getFieldDecoderForRelation({ field, context, imports, includeTransformer, }: {
    field: FieldRelation;
    context: ContextResult;
    imports: Generator.ImportGenerator;
    includeTransformer?: boolean;
}): ZodFieldDecoder[];
export declare function getZodFieldDiscriminatedUnionDecoder({ field, context, imports, }: {
    field: FieldDiscriminatedUnion;
    context: ContextResult;
    imports: Generator.ImportGenerator;
}): string;
export {};
