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
 */
/** TypedDataDomainZod constant. */
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>;
/** TypedDataDomain type. */
export type TypedDataDomain = z.infer<typeof TypedDataDomainZod>;
/** TypedDataFieldZod constant. */
export declare const TypedDataFieldZod: z.ZodObject<{
    name: z.ZodString;
    type: z.ZodString;
}, z.core.$strip>;
/** TypedDataField type. */
export type TypedDataField = z.infer<typeof TypedDataFieldZod>;
/** TypedDataTypesZod constant. */
export declare const TypedDataTypesZod: z.ZodRecord<z.ZodString, z.ZodArray<z.ZodObject<{
    name: z.ZodString;
    type: z.ZodString;
}, z.core.$strip>>>;
/** TypedDataTypes type. */
export type TypedDataTypes = z.infer<typeof TypedDataTypesZod>;
/** TypedDataValueZod constant. */
export declare const TypedDataValueZod: z.ZodRecord<z.ZodString, z.ZodAny>;
/** TypedDataValues type. */
export type TypedDataValues = z.infer<typeof TypedDataValueZod>;
//# sourceMappingURL=Types.d.ts.map