import type { Infer } from "@metamask/superstruct";
import type { Keyring } from "./keyring.cjs";
/**
 * Keyring interface for keyring methods that can be invoked through
 * RPC calls.
 */
export type KeyringRpc = {
    getAccount: Keyring['getAccount'];
    getAccounts: Keyring['getAccounts'];
    createAccounts: Keyring['createAccounts'];
    deleteAccount: Keyring['deleteAccount'];
    submitRequest: Keyring['submitRequest'];
    exportAccount?: Keyring['exportAccount'];
};
/**
 * Keyring RPC methods used by the API.
 */
export declare const KeyringRpcMethod: {
    readonly GetAccounts: "keyring_getAccounts";
    readonly CreateAccounts: "keyring_createAccounts";
    readonly GetAccount: "keyring_getAccount";
    readonly DeleteAccount: "keyring_deleteAccount";
    readonly ExportAccount: "keyring_exportAccount";
    readonly SubmitRequest: "keyring_submitRequest";
};
/**
 * Keyring RPC methods used by the API.
 */
export type KeyringRpcMethod = (typeof KeyringRpcMethod)[keyof typeof KeyringRpcMethod];
/**
 * Check if a method is a keyring RPC method (v2).
 *
 * @param method - Method to check.
 * @returns Whether the method is a keyring RPC method (v2).
 */
export declare function isKeyringRpcMethod(method: string): method is KeyringRpcMethod;
export declare const GetAccountsRequestStruct: import("@metamask/superstruct").Struct<{
    method: "keyring_getAccounts";
    id: string | number | null;
    jsonrpc: "2.0";
}, {
    method: import("@metamask/superstruct").Struct<"keyring_getAccounts", "keyring_getAccounts">;
    jsonrpc: import("@metamask/superstruct").Struct<"2.0", "2.0">;
    id: import("@metamask/superstruct").Struct<string | number | null, null>;
}>;
export type GetAccountsRequest = Infer<typeof GetAccountsRequestStruct>;
export declare const GetAccountsResponseStruct: import("@metamask/superstruct").Struct<{
    type: "eip155:eoa" | "eip155:erc4337" | "bip122:p2pkh" | "bip122:p2sh" | "bip122:p2wpkh" | "bip122:p2tr" | "solana:data-account" | "tron:eoa" | "stellar:account" | "any:account";
    id: string;
    options: Record<string, import("@metamask/utils").Json> & {
        entropy?: {
            type: "mnemonic";
            id: string;
            derivationPath: string;
            groupIndex: number;
        } | {
            type: "private-key";
        } | {
            type: "custom";
        };
        exportable?: boolean;
    };
    address: string;
    scopes: `${string}:${string}`[];
    methods: string[];
}[], import("@metamask/superstruct").Struct<{
    type: "eip155:eoa" | "eip155:erc4337" | "bip122:p2pkh" | "bip122:p2sh" | "bip122:p2wpkh" | "bip122:p2tr" | "solana:data-account" | "tron:eoa" | "stellar:account" | "any:account";
    id: string;
    options: Record<string, import("@metamask/utils").Json> & {
        entropy?: {
            type: "mnemonic";
            id: string;
            derivationPath: string;
            groupIndex: number;
        } | {
            type: "private-key";
        } | {
            type: "custom";
        };
        exportable?: boolean;
    };
    address: string;
    scopes: `${string}:${string}`[];
    methods: string[];
}, {
    id: import("@metamask/superstruct").Struct<string, null>;
    type: import("@metamask/superstruct").Struct<"eip155:eoa" | "eip155:erc4337" | "bip122:p2pkh" | "bip122:p2sh" | "bip122:p2wpkh" | "bip122:p2tr" | "solana:data-account" | "tron:eoa" | "stellar:account" | "any:account", {
        "eip155:eoa": "eip155:eoa";
        "eip155:erc4337": "eip155:erc4337";
        "bip122:p2pkh": "bip122:p2pkh";
        "bip122:p2sh": "bip122:p2sh";
        "bip122:p2wpkh": "bip122:p2wpkh";
        "bip122:p2tr": "bip122:p2tr";
        "solana:data-account": "solana:data-account";
        "tron:eoa": "tron:eoa";
        "stellar:account": "stellar:account";
        "any:account": "any:account";
    }>;
    address: import("@metamask/superstruct").Struct<string, null>;
    scopes: import("@metamask/superstruct").Struct<`${string}:${string}`[], import("@metamask/superstruct").Struct<`${string}:${string}`, null>>;
    options: import("@metamask/superstruct").Struct<Record<string, import("@metamask/utils").Json> & {
        entropy?: {
            type: "mnemonic";
            id: string;
            derivationPath: string;
            groupIndex: number;
        } | {
            type: "private-key";
        } | {
            type: "custom";
        };
        exportable?: boolean;
    }, null>;
    methods: import("@metamask/superstruct").Struct<string[], import("@metamask/superstruct").Struct<string, null>>;
}>>;
export type GetAccountsResponse = Infer<typeof GetAccountsResponseStruct>;
export declare const GetAccountRequestStruct: import("@metamask/superstruct").Struct<{
    method: "keyring_getAccount";
    id: string | number | null;
    jsonrpc: "2.0";
    params: {
        id: string;
    };
}, {
    method: import("@metamask/superstruct").Struct<"keyring_getAccount", "keyring_getAccount">;
    params: import("@metamask/superstruct").Struct<{
        id: string;
    }, {
        id: import("@metamask/superstruct").Struct<string, null>;
    }>;
    jsonrpc: import("@metamask/superstruct").Struct<"2.0", "2.0">;
    id: import("@metamask/superstruct").Struct<string | number | null, null>;
}>;
export type GetAccountRequest = Infer<typeof GetAccountRequestStruct>;
export declare const GetAccountResponseStruct: import("@metamask/superstruct").Struct<{
    type: "eip155:eoa" | "eip155:erc4337" | "bip122:p2pkh" | "bip122:p2sh" | "bip122:p2wpkh" | "bip122:p2tr" | "solana:data-account" | "tron:eoa" | "stellar:account" | "any:account";
    id: string;
    options: Record<string, import("@metamask/utils").Json> & {
        entropy?: {
            type: "mnemonic";
            id: string;
            derivationPath: string;
            groupIndex: number;
        } | {
            type: "private-key";
        } | {
            type: "custom";
        };
        exportable?: boolean;
    };
    address: string;
    scopes: `${string}:${string}`[];
    methods: string[];
}, {
    id: import("@metamask/superstruct").Struct<string, null>;
    type: import("@metamask/superstruct").Struct<"eip155:eoa" | "eip155:erc4337" | "bip122:p2pkh" | "bip122:p2sh" | "bip122:p2wpkh" | "bip122:p2tr" | "solana:data-account" | "tron:eoa" | "stellar:account" | "any:account", {
        "eip155:eoa": "eip155:eoa";
        "eip155:erc4337": "eip155:erc4337";
        "bip122:p2pkh": "bip122:p2pkh";
        "bip122:p2sh": "bip122:p2sh";
        "bip122:p2wpkh": "bip122:p2wpkh";
        "bip122:p2tr": "bip122:p2tr";
        "solana:data-account": "solana:data-account";
        "tron:eoa": "tron:eoa";
        "stellar:account": "stellar:account";
        "any:account": "any:account";
    }>;
    address: import("@metamask/superstruct").Struct<string, null>;
    scopes: import("@metamask/superstruct").Struct<`${string}:${string}`[], import("@metamask/superstruct").Struct<`${string}:${string}`, null>>;
    options: import("@metamask/superstruct").Struct<Record<string, import("@metamask/utils").Json> & {
        entropy?: {
            type: "mnemonic";
            id: string;
            derivationPath: string;
            groupIndex: number;
        } | {
            type: "private-key";
        } | {
            type: "custom";
        };
        exportable?: boolean;
    }, null>;
    methods: import("@metamask/superstruct").Struct<string[], import("@metamask/superstruct").Struct<string, null>>;
}>;
export type GetAccountResponse = Infer<typeof GetAccountResponseStruct>;
export declare const CreateAccountsRequestStruct: import("@metamask/superstruct").Struct<{
    method: "keyring_createAccounts";
    id: string | number | null;
    jsonrpc: "2.0";
    params: {
        type: "bip44:derive-path";
        derivationPath: `m/${string}`;
        entropySource: string;
    } | {
        type: "bip44:derive-index";
        groupIndex: number;
        entropySource: string;
    } | {
        type: "bip44:discover";
        groupIndex: number;
        entropySource: string;
    } | {
        type: "bip44:derive-index-range";
        range: {
            from: number;
            to: number;
        };
        entropySource: string;
    } | {
        type: "custom";
    } | {
        type: "private-key:import";
        encoding: "hexadecimal" | "base58";
        privateKey: string;
        accountType?: "eip155:eoa" | "eip155:erc4337" | "bip122:p2pkh" | "bip122:p2sh" | "bip122:p2wpkh" | "bip122:p2tr" | "solana:data-account" | "tron:eoa" | "stellar:account" | "any:account";
    };
}, {
    method: import("@metamask/superstruct").Struct<"keyring_createAccounts", "keyring_createAccounts">;
    params: import("@metamask/superstruct").Struct<{
        type: "bip44:derive-path";
        derivationPath: `m/${string}`;
        entropySource: string;
    } | {
        type: "bip44:derive-index";
        groupIndex: number;
        entropySource: string;
    } | {
        type: "bip44:discover";
        groupIndex: number;
        entropySource: string;
    } | {
        type: "bip44:derive-index-range";
        range: {
            from: number;
            to: number;
        };
        entropySource: string;
    } | {
        type: "custom";
    } | {
        type: "private-key:import";
        encoding: "hexadecimal" | "base58";
        privateKey: string;
        accountType?: "eip155:eoa" | "eip155:erc4337" | "bip122:p2pkh" | "bip122:p2sh" | "bip122:p2wpkh" | "bip122:p2tr" | "solana:data-account" | "tron:eoa" | "stellar:account" | "any:account";
    }, null>;
    jsonrpc: import("@metamask/superstruct").Struct<"2.0", "2.0">;
    id: import("@metamask/superstruct").Struct<string | number | null, null>;
}>;
export type CreateAccountsRequest = Infer<typeof CreateAccountsRequestStruct>;
export declare const CreateAccountsResponseStruct: import("@metamask/superstruct").Struct<{
    type: "eip155:eoa" | "eip155:erc4337" | "bip122:p2pkh" | "bip122:p2sh" | "bip122:p2wpkh" | "bip122:p2tr" | "solana:data-account" | "tron:eoa" | "stellar:account" | "any:account";
    id: string;
    options: Record<string, import("@metamask/utils").Json> & {
        entropy?: {
            type: "mnemonic";
            id: string;
            derivationPath: string;
            groupIndex: number;
        } | {
            type: "private-key";
        } | {
            type: "custom";
        };
        exportable?: boolean;
    };
    address: string;
    scopes: `${string}:${string}`[];
    methods: string[];
}[], import("@metamask/superstruct").Struct<{
    type: "eip155:eoa" | "eip155:erc4337" | "bip122:p2pkh" | "bip122:p2sh" | "bip122:p2wpkh" | "bip122:p2tr" | "solana:data-account" | "tron:eoa" | "stellar:account" | "any:account";
    id: string;
    options: Record<string, import("@metamask/utils").Json> & {
        entropy?: {
            type: "mnemonic";
            id: string;
            derivationPath: string;
            groupIndex: number;
        } | {
            type: "private-key";
        } | {
            type: "custom";
        };
        exportable?: boolean;
    };
    address: string;
    scopes: `${string}:${string}`[];
    methods: string[];
}, {
    id: import("@metamask/superstruct").Struct<string, null>;
    type: import("@metamask/superstruct").Struct<"eip155:eoa" | "eip155:erc4337" | "bip122:p2pkh" | "bip122:p2sh" | "bip122:p2wpkh" | "bip122:p2tr" | "solana:data-account" | "tron:eoa" | "stellar:account" | "any:account", {
        "eip155:eoa": "eip155:eoa";
        "eip155:erc4337": "eip155:erc4337";
        "bip122:p2pkh": "bip122:p2pkh";
        "bip122:p2sh": "bip122:p2sh";
        "bip122:p2wpkh": "bip122:p2wpkh";
        "bip122:p2tr": "bip122:p2tr";
        "solana:data-account": "solana:data-account";
        "tron:eoa": "tron:eoa";
        "stellar:account": "stellar:account";
        "any:account": "any:account";
    }>;
    address: import("@metamask/superstruct").Struct<string, null>;
    scopes: import("@metamask/superstruct").Struct<`${string}:${string}`[], import("@metamask/superstruct").Struct<`${string}:${string}`, null>>;
    options: import("@metamask/superstruct").Struct<Record<string, import("@metamask/utils").Json> & {
        entropy?: {
            type: "mnemonic";
            id: string;
            derivationPath: string;
            groupIndex: number;
        } | {
            type: "private-key";
        } | {
            type: "custom";
        };
        exportable?: boolean;
    }, null>;
    methods: import("@metamask/superstruct").Struct<string[], import("@metamask/superstruct").Struct<string, null>>;
}>>;
export type CreateAccountsResponse = Infer<typeof CreateAccountsResponseStruct>;
export declare const DeleteAccountRequestStruct: import("@metamask/superstruct").Struct<{
    method: "keyring_deleteAccount";
    id: string | number | null;
    jsonrpc: "2.0";
    params: {
        id: string;
    };
}, {
    method: import("@metamask/superstruct").Struct<"keyring_deleteAccount", "keyring_deleteAccount">;
    params: import("@metamask/superstruct").Struct<{
        id: string;
    }, {
        id: import("@metamask/superstruct").Struct<string, null>;
    }>;
    jsonrpc: import("@metamask/superstruct").Struct<"2.0", "2.0">;
    id: import("@metamask/superstruct").Struct<string | number | null, null>;
}>;
export type DeleteAccountRequest = Infer<typeof DeleteAccountRequestStruct>;
export declare const DeleteAccountResponseStruct: import("@metamask/superstruct").Struct<null, null>;
export type DeleteAccountResponse = Infer<typeof DeleteAccountResponseStruct>;
export declare const ExportAccountRequestStruct: import("@metamask/superstruct").Struct<{
    method: "keyring_exportAccount";
    id: string | number | null;
    jsonrpc: "2.0";
    params: {
        id: string;
        options?: {
            type: "private-key";
            encoding: "hexadecimal" | "base58";
        };
    };
}, {
    method: import("@metamask/superstruct").Struct<"keyring_exportAccount", "keyring_exportAccount">;
    params: import("@metamask/superstruct").Struct<{
        id: string;
        options?: {
            type: "private-key";
            encoding: "hexadecimal" | "base58";
        };
    }, {
        id: import("@metamask/superstruct").Struct<string, null>;
        options: import("@metamask/superstruct").Struct<import("@metamask/keyring-utils").ExactOptionalTag | {
            type: "private-key";
            encoding: "hexadecimal" | "base58";
        }, {
            type: import("@metamask/superstruct").Struct<"private-key", "private-key">;
            encoding: import("@metamask/superstruct").Struct<"hexadecimal" | "base58", {
                hexadecimal: "hexadecimal";
                base58: "base58";
            }>;
        }>;
    }>;
    jsonrpc: import("@metamask/superstruct").Struct<"2.0", "2.0">;
    id: import("@metamask/superstruct").Struct<string | number | null, null>;
}>;
export type ExportAccountRequest = Infer<typeof ExportAccountRequestStruct>;
export declare const ExportAccountResponseStruct: import("@metamask/superstruct").Struct<{
    type: "private-key";
    encoding: "hexadecimal" | "base58";
    privateKey: string;
}, {
    type: import("@metamask/superstruct").Struct<"private-key", "private-key">;
    privateKey: import("@metamask/superstruct").Struct<string, null>;
    encoding: import("@metamask/superstruct").Struct<"hexadecimal" | "base58", {
        hexadecimal: "hexadecimal";
        base58: "base58";
    }>;
}>;
export type ExportAccountResponse = Infer<typeof ExportAccountResponseStruct>;
export declare const SubmitRequestRequestStruct: import("@metamask/superstruct").Struct<{
    method: "keyring_submitRequest";
    id: string | number | null;
    jsonrpc: "2.0";
    params: {
        id: string;
        origin: string;
        request: {
            method: string;
            params?: Record<string, import("@metamask/utils").Json> | import("@metamask/utils").Json[];
        };
        scope: string;
        account: string;
    };
}, {
    method: import("@metamask/superstruct").Struct<"keyring_submitRequest", "keyring_submitRequest">;
    params: import("@metamask/superstruct").Struct<{
        id: string;
        origin: string;
        request: {
            method: string;
            params?: Record<string, import("@metamask/utils").Json> | import("@metamask/utils").Json[];
        };
        scope: string;
        account: string;
    }, {
        id: import("@metamask/superstruct").Struct<string, null>;
        scope: import("@metamask/superstruct").Struct<string, null>;
        account: import("@metamask/superstruct").Struct<string, null>;
        origin: import("@metamask/superstruct").Struct<string, null>;
        request: import("@metamask/superstruct").Struct<{
            method: string;
            params?: Record<string, import("@metamask/utils").Json> | import("@metamask/utils").Json[];
        }, {
            method: import("@metamask/superstruct").Struct<string, null>;
            params: import("@metamask/superstruct").Struct<Record<string, import("@metamask/utils").Json> | import("@metamask/utils").Json[] | import("@metamask/keyring-utils").ExactOptionalTag, null>;
        }>;
    }>;
    jsonrpc: import("@metamask/superstruct").Struct<"2.0", "2.0">;
    id: import("@metamask/superstruct").Struct<string | number | null, null>;
}>;
export type SubmitRequestRequest = Infer<typeof SubmitRequestRequestStruct>;
export declare const SubmitRequestResponseStruct: import("@metamask/superstruct").Struct<import("@metamask/utils").Json, unknown>;
export type SubmitRequestResponse = Infer<typeof SubmitRequestResponseStruct>;
/**
 * Keyring RPC requests.
 */
export type KeyringRpcRequests = GetAccountsRequest | GetAccountRequest | CreateAccountsRequest | DeleteAccountRequest | ExportAccountRequest | SubmitRequestRequest;
/**
 * Extract the proper request type for a given `KeyringRpcMethod`.
 */
export type KeyringRpcRequest<RpcMethod extends KeyringRpcMethod> = Extract<KeyringRpcRequests, {
    method: `${RpcMethod}`;
}>;
//# sourceMappingURL=keyring-rpc.d.cts.map