import type { TypedData, TypedDataDomain, TypedDataToPrimitiveTypes } from 'abitype'; import type { Prettify } from './utils.js'; export type TypedDataDefinition = TypedData, primaryType extends keyof typedData | 'EIP712Domain' = keyof typedData, primaryTypes = typedData extends TypedData ? keyof typedData : string> = primaryType extends 'EIP712Domain' ? EIP712DomainDefinition : MessageDefinition; type MessageDefinition = TypedData, primaryType extends keyof typedData = keyof typedData, primaryTypes = typedData extends TypedData ? keyof typedData : string, schema extends Record = typedData extends TypedData ? TypedDataToPrimitiveTypes : Record, message = schema[primaryType extends keyof schema ? primaryType : keyof schema]> = { types: typedData; } & { primaryType: primaryTypes | (primaryType extends primaryTypes ? primaryType : never); domain?: (schema extends { EIP712Domain: infer domain; } ? domain : Prettify) | undefined; message: { [_: string]: any; } extends message ? Record : message; }; type EIP712DomainDefinition = TypedData, primaryType extends 'EIP712Domain' = 'EIP712Domain', schema extends Record = typedData extends TypedData ? TypedDataToPrimitiveTypes : Record> = { types?: typedData | undefined; } & { primaryType: 'EIP712Domain' | primaryType; domain: schema extends { EIP712Domain: infer domain; } ? domain : Prettify; message?: undefined; }; export {}; //# sourceMappingURL=typedData.d.ts.map