import { AccountData, ChainInfo, Key, OfflineAminoSigner, OfflineDirectSigner, StdSignature } from '@keplr-wallet/types'; import { DirectSignResponse } from "@cosmjs/proto-signing"; import { AminoSignResponse, SinglePubkey, StdFee, StdSignDoc, MultisigThresholdPubkey } from "@cosmjs/amino"; import { Long } from 'long'; import { Address, Chain, CosmosAddress, Fees, Msg } from './types.js'; import { DeliverTxResponse } from "@cosmjs/stargate"; import { SignDoc } from 'cosmjs-types/cosmos/tx/v1beta1/tx'; import { Appwrite } from './appwrite.js'; import { HttpEndpoint } from "@cosmjs/stargate"; declare global { interface Window { cosmos: CosmosSnap; ethereum?: any; } } export interface SnapProvider { experimentalSuggestChain(chainInfo: ChainInfo): Promise; signAmino(chainId: string, signer: string, signDoc: StdSignDoc): Promise; signDirect(chainId: string, signer: string, signDoc: { /** SignDoc bodyBytes */ bodyBytes?: Uint8Array | null; /** SignDoc authInfoBytes */ authInfoBytes?: Uint8Array | null; /** SignDoc chainId */ chainId?: string | null; /** SignDoc accountNumber */ accountNumber?: Long | null; }): Promise; signArbitrary(chainId: string, signer: string, data: string | Uint8Array): Promise; sendTx(chainId: string, tx: Uint8Array): Promise; getOfflineSigner(chainId: string, mode: string): OfflineAminoSigner & OfflineDirectSigner; getKey(chainId: string): Promise; enable(): Promise; getChains(): Promise; deleteChain(chain_id: string): Promise; signAndBroadcast(chain_id: string, msgs: Msg[], fees: Fees): Promise; sign(chain_id: string, msgs: Msg[], fees: Fees): Promise; addAddressToBook(chain_id: string, address: string, name: string): Promise; getAddressBook(): Promise; deleteAddressFromBook(address: string): Promise; getBech32Addresses(): Promise; getBech32Address(chain_id: string): Promise; getAccount(chain_id: string): Promise; changeSnapId(snap_id: string): void; } export declare class CosmosSnap implements SnapProvider { snap_id: string; appwrite: Appwrite; changeSnapId(snap_id: string): void; getAccount(chain_id: string): Promise; getKey(chain_id: string): Promise; deleteChain(chain_id: string): Promise; signAndBroadcast(chain_id: string, msgs: Msg[], fees: Fees): Promise; sign(chain_id: string, msgs: Msg[], fees: Fees): Promise; addAddressToBook(chain_id: string, address: string, name: string): Promise; getAddressBook(): Promise; deleteAddressFromBook(address: string): Promise; getBech32Addresses(): Promise; getBech32Address(chain_id: string): Promise; enable(): Promise; getChains(): Promise; experimentalSuggestChain(chainInfo: ChainInfo): Promise; signAmino(chainId: string, signer: string, signDoc: StdSignDoc): Promise; signDirect(chainId: string, signer: string, signDoc: SignDoc): Promise; signArbitrary(chainId: string, signer: string, data: string | Uint8Array): Promise; sendTx(chainId: string, tx: Uint8Array): Promise; getOfflineSigner(chainId: string, mode?: string): OfflineAminoSigner & OfflineDirectSigner; getOfflineSignerOnlyAmino(chainId: any): OfflineAminoSigner; setupAppwrite(appwrite_url: string, appwrite_id: string): void; checkMultisigSetup(): void; getPendingMultisigTx(multisigPublicKey: string, memberPublicKey: string): Promise<{ transaction: import("./appwrite.js").MultisigTx; hasPending: boolean; }>; signPendingMultisigTx(public_key: string, rpc: string | HttpEndpoint, fee: StdFee, prefix: string, signature: string, signer_address: string): Promise; deletePendingMultisigTx(tx_id: string): Promise; createMultisigTx(public_key: MultisigThresholdPubkey, rpc: string | HttpEndpoint, prefix: string, signature: string, body_bytes: string, messages: string, chain_id: string, signer_address: string, fee: StdFee): Promise; getMultisigs(memberPublicKey: string): Promise; createNewMultisig(name: string, threshold: number, pubKeys: SinglePubkey[]): Promise; }