import { z } from 'zod';
export declare const Locale: z.ZodEffects<z.ZodString, string, string>;
export type Locale = z.infer<typeof Locale>;
export declare const Localized: <T extends z.ZodRawShape>(schema: z.ZodObject<T>) => z.ZodObject<z.objectUtil.extendShape<T, {
    locale: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
}>, z.UnknownKeysParam, z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<z.objectUtil.extendShape<T, {
    locale: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
}>>, any> extends infer T_1 ? { [k in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<z.objectUtil.extendShape<T, {
    locale: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
}>>, any>[k]; } : never, z.baseObjectInputType<z.objectUtil.extendShape<T, {
    locale: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
}>> extends infer T_2 ? { [k_1 in keyof T_2]: z.baseObjectInputType<z.objectUtil.extendShape<T, {
    locale: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
}>>[k_1]; } : never>;
export type Localized<T extends z.ZodRawShape> = z.infer<ReturnType<typeof Localized<T>> & {
    locale: Locale;
}>;
