/**
 * Superstruct validation schemas for Ethereum JSON-RPC method parameters.
 *
 * These structs provide runtime validation for the parameters passed to various
 * Ethereum RPC methods. They can be used by keyring implementations to validate
 * incoming requests before processing.
 */
import type { Infer } from "@metamask/superstruct";
/**
 * A struct for validating Ethereum transaction data.
 *
 * This uses `type()` instead of `object()` to allow extra properties,
 * since transaction formats can vary and include additional fields.
 * The actual transaction validation is performed by the transaction library.
 */
export declare const EthTransactionDataStruct: import("@metamask/superstruct").Struct<{
    value?: string | number | undefined;
    type?: string | number | undefined;
    data?: string | undefined;
    from?: string | undefined;
    chainId?: string | number | undefined;
    accessList?: {
        address: string;
        storageKeys: string[];
    }[] | undefined;
    nonce?: string | number | undefined;
    to?: string | null | undefined;
    maxFeePerGas?: string | number | undefined;
    maxPriorityFeePerGas?: string | number | undefined;
    gas?: string | number | undefined;
    gasLimit?: string | number | undefined;
    gasPrice?: string | number | undefined;
}, {
    to: import("@metamask/superstruct").Struct<string | null | undefined, null>;
    from: import("@metamask/superstruct").Struct<string | undefined, null>;
    nonce: import("@metamask/superstruct").Struct<string | number | undefined, null>;
    value: import("@metamask/superstruct").Struct<string | number | undefined, null>;
    data: import("@metamask/superstruct").Struct<string | undefined, null>;
    gas: import("@metamask/superstruct").Struct<string | number | undefined, null>;
    gasLimit: import("@metamask/superstruct").Struct<string | number | undefined, null>;
    gasPrice: import("@metamask/superstruct").Struct<string | number | undefined, null>;
    maxFeePerGas: import("@metamask/superstruct").Struct<string | number | undefined, null>;
    maxPriorityFeePerGas: import("@metamask/superstruct").Struct<string | number | undefined, null>;
    accessList: import("@metamask/superstruct").Struct<{
        address: string;
        storageKeys: string[];
    }[] | undefined, import("@metamask/superstruct").Struct<{
        address: string;
        storageKeys: string[];
    }, {
        address: import("@metamask/superstruct").Struct<string, null>;
        storageKeys: import("@metamask/superstruct").Struct<string[], import("@metamask/superstruct").Struct<string, null>>;
    }>>;
    type: import("@metamask/superstruct").Struct<string | number | undefined, null>;
    chainId: import("@metamask/superstruct").Struct<string | number | undefined, null>;
}>;
export type EthTransactionData = Infer<typeof EthTransactionDataStruct>;
/**
 * A struct for TypedDataV1 format (legacy typed data).
 * This is an array of { type, name, value } objects.
 */
export declare const EthTypedDataV1Struct: import("@metamask/superstruct").Struct<{
    name: string;
    value: unknown;
    type: string;
}[], import("@metamask/superstruct").Struct<{
    name: string;
    value: unknown;
    type: string;
}, {
    type: import("@metamask/superstruct").Struct<string, null>;
    name: import("@metamask/superstruct").Struct<string, null>;
    value: import("@metamask/superstruct").Struct<unknown, null>;
}>>;
export type EthTypedDataV1 = Infer<typeof EthTypedDataV1Struct>;
/**
 * A struct for TypedData types definition.
 * Maps type names to arrays of { name, type } definitions.
 */
export declare const EthTypedDataTypesStruct: import("@metamask/superstruct").Struct<Record<string, {
    name: string;
    type: string;
}[]>, null>;
export type EthTypedDataTypes = Infer<typeof EthTypedDataTypesStruct>;
/**
 * A struct for TypedMessage format (EIP-712 V3/V4).
 * Contains types, domain, primaryType, and message.
 */
export declare const EthTypedMessageStruct: import("@metamask/superstruct").Struct<{
    message: Record<string, any>;
    domain: Record<string, any>;
    types: Record<string, {
        name: string;
        type: string;
    }[]>;
    primaryType: string;
}, {
    types: import("@metamask/superstruct").Struct<Record<string, {
        name: string;
        type: string;
    }[]>, null>;
    primaryType: import("@metamask/superstruct").Struct<string, null>;
    domain: import("@metamask/superstruct").Struct<Record<string, any>, null>;
    message: import("@metamask/superstruct").Struct<Record<string, any>, null>;
}>;
export type EthTypedMessage = Infer<typeof EthTypedMessageStruct>;
/**
 * A struct for EIP-1024 encrypted data format (x25519-xsalsa20-poly1305).
 */
export declare const EthEncryptedDataStruct: import("@metamask/superstruct").Struct<{
    nonce: string;
    version: "x25519-xsalsa20-poly1305";
    ephemPublicKey: string;
    ciphertext: string;
}, {
    version: import("@metamask/superstruct").Struct<"x25519-xsalsa20-poly1305", "x25519-xsalsa20-poly1305">;
    nonce: import("@metamask/superstruct").Struct<string, null>;
    ephemPublicKey: import("@metamask/superstruct").Struct<string, null>;
    ciphertext: import("@metamask/superstruct").Struct<string, null>;
}>;
export type EthEncryptedData = Infer<typeof EthEncryptedDataStruct>;
/**
 * A struct for EIP-7702 authorization tuple.
 * Format: [chainId, address, nonce]
 */
export declare const EthEip7702AuthorizationStruct: import("@metamask/superstruct").Struct<[number, `0x${string}`, number], null>;
export type EthEip7702Authorization = Infer<typeof EthEip7702AuthorizationStruct>;
/**
 * A struct for getEncryptionPublicKey options.
 */
export declare const EthGetEncryptionPublicKeyOptionsStruct: import("@metamask/superstruct").Struct<Record<string, unknown>, null>;
/**
 * Parameters for `eth_signTransaction`.
 */
export declare const EthSignTransactionParamsStruct: import("@metamask/superstruct").Struct<[{
    value?: string | number | undefined;
    type?: string | number | undefined;
    data?: string | undefined;
    from?: string | undefined;
    chainId?: string | number | undefined;
    accessList?: {
        address: string;
        storageKeys: string[];
    }[] | undefined;
    nonce?: string | number | undefined;
    to?: string | null | undefined;
    maxFeePerGas?: string | number | undefined;
    maxPriorityFeePerGas?: string | number | undefined;
    gas?: string | number | undefined;
    gasLimit?: string | number | undefined;
    gasPrice?: string | number | undefined;
}], null>;
export type EthSignTransactionParams = Infer<typeof EthSignTransactionParamsStruct>;
/**
 * Parameters for `eth_sign`.
 */
export declare const EthSignParamsStruct: import("@metamask/superstruct").Struct<[string, string], null>;
export type EthSignParams = Infer<typeof EthSignParamsStruct>;
/**
 * Parameters for `personal_sign`.
 */
export declare const EthPersonalSignParamsStruct: import("@metamask/superstruct").Struct<[string, string] | [string], null>;
export type EthPersonalSignParams = Infer<typeof EthPersonalSignParamsStruct>;
/**
 * Parameters for `eth_signTypedData_v1`.
 */
export declare const EthSignTypedDataV1ParamsStruct: import("@metamask/superstruct").Struct<[string, {
    name: string;
    value: unknown;
    type: string;
}[]], null>;
export type EthSignTypedDataV1Params = Infer<typeof EthSignTypedDataV1ParamsStruct>;
/**
 * Parameters for `eth_signTypedData_v3` and `eth_signTypedData_v4`.
 */
export declare const EthSignTypedDataParamsStruct: import("@metamask/superstruct").Struct<[string, {
    message: Record<string, any>;
    domain: Record<string, any>;
    types: Record<string, {
        name: string;
        type: string;
    }[]>;
    primaryType: string;
}], null>;
export type EthSignTypedDataParams = Infer<typeof EthSignTypedDataParamsStruct>;
/**
 * Parameters for `eth_decrypt`.
 */
export declare const EthDecryptParamsStruct: import("@metamask/superstruct").Struct<[{
    nonce: string;
    version: "x25519-xsalsa20-poly1305";
    ephemPublicKey: string;
    ciphertext: string;
}], null>;
export type EthDecryptParams = Infer<typeof EthDecryptParamsStruct>;
/**
 * Parameters for `eth_getAppKeyAddress`.
 */
export declare const EthGetAppKeyAddressParamsStruct: import("@metamask/superstruct").Struct<[string], null>;
export type EthGetAppKeyAddressParams = Infer<typeof EthGetAppKeyAddressParamsStruct>;
/**
 * Parameters for `eth_signEip7702Authorization`.
 *
 * @example
 * ```ts
 * const params = [[1, '0xContractAddress', 0]];
 * ```
 */
export declare const EthSignEip7702AuthorizationParamsStruct: import("@metamask/superstruct").Struct<[[number, `0x${string}`, number]], null>;
export type EthSignEip7702AuthorizationParams = Infer<typeof EthSignEip7702AuthorizationParamsStruct>;
/**
 * Parameters for `eth_getEncryptionPublicKey`.
 */
export declare const EthGetEncryptionPublicKeyParamsStruct: import("@metamask/superstruct").Struct<[string, Record<string, unknown> | undefined], null>;
//# sourceMappingURL=params.d.cts.map