import { z } from 'zod';
/**
 * Typed Data Types
 * Re-exposing the types from ethers for convenience and to ensure
 * we can fix in one place if they change
 */
/** Zod schema for validating Typed Data Domain values. */
export declare const TypedDataDomainZod: z.ZodObject<{
    name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    version: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    chainId: z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBigInt]>>>;
    verifyingContract: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    salt: z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<Uint8Array<ArrayBuffer>, Uint8Array<ArrayBuffer>>]>>>;
}, z.core.$strip>;
/** Data contract used by Typed Data Domain. */
export type TypedDataDomain = z.infer<typeof TypedDataDomainZod>;
/** Zod schema for validating Typed Data Field values. */
export declare const TypedDataFieldZod: z.ZodObject<{
    name: z.ZodString;
    type: z.ZodString;
}, z.core.$strip>;
/** Data contract used by Typed Data Field. */
export type TypedDataField = z.infer<typeof TypedDataFieldZod>;
/** Zod schema for validating Typed Data Types values. */
export declare const TypedDataTypesZod: z.ZodRecord<z.ZodString, z.ZodArray<z.ZodObject<{
    name: z.ZodString;
    type: z.ZodString;
}, z.core.$strip>>>;
/** Data contract used by Typed Data Types. */
export type TypedDataTypes = z.infer<typeof TypedDataTypesZod>;
/** Zod schema for validating Typed Data Value values. */
export declare const TypedDataValueZod: z.ZodRecord<z.ZodString, z.ZodAny>;
/** Data contract used by Typed Data Values. */
export type TypedDataValues = z.infer<typeof TypedDataValueZod>;
//# sourceMappingURL=Types.d.ts.map