import type { TransactionRequest } from '@ethersproject/providers'; declare global { interface Window { ethereum: any; } } export declare enum RPCMethods { CreateIdentity = "create_identity", SaveCredentials = "save_credentials", RemoveCredentials = "remove_credentials", CheckCredentialExistence = "check_credential_existence", CreateProof = "create_proof", CheckStateContractSync = "check_state_contract_sync", GetCredentials = "get_credentials", ExportIdentity = "export_identity", GetIdentity = "get_identity" } export declare type SaveCredentialsResponse = Pick & Pick; export declare type SnapConnector = { createIdentity(params?: CreateIdentityRequestParams): Promise<{ identityIdString: string; identityIdBigIntString: string; }>; saveCredentials(params: SaveCredentialsRequestParams): Promise; removeCredentials(params: RemoveCredentialsRequestParams): Promise; createProof(params: CreateProofRequestParams): Promise; checkStateContractSync(): Promise; getCredentials(): Promise; checkCredentialExistence(params: CheckCredentialExistenceRequestParams): Promise; exportIdentity(): Promise; getIdentity(): Promise; }; export declare type IdentityDidPair = { identityIdString: string; identityIdBigIntString: string; }; export declare type GetSnapsResponse = { [k: string]: { permissionName?: string; id?: string; version?: string; initialPermissions?: { [k: string]: unknown; }; }; }; export declare type CreateIdentityRequestParams = { privateKeyHex?: string; }; export declare type CheckCredentialExistenceRequestParams = { claimOffer?: SaveCredentialsRequestParams; proofRequest?: CreateProofRequestParams; }; export declare type SaveCredentialsRequestParams = { body: { Credentials: [ { description: string; id: string; } ]; url: string; }; from: string; id: string; threadID?: string; to: string; typ?: string; type: string; }; export declare type RemoveCredentialsRequestParams = { ids: string[]; }; export declare type CredentialStatus = { id: string; type: string; revocationNonce?: number; statusIssuer?: CredentialStatus; }; export declare type CredentialSchema = { id: string; type: string; }; export declare type W3CCredential = { id: string; '@context': string[]; type: string[]; expirationDate?: string; issuanceDate?: string; credentialSubject: { [key: string]: object | string | number; }; credentialStatus: CredentialStatus; issuer: string; credentialSchema: CredentialSchema; proof?: { [key: string]: any; } | any[]; }; export declare type ProofQuery = { allowedIssuers?: string[]; credentialSubject?: { [key: string]: any; }; schema?: string; claimId?: string; credentialSubjectId?: string; context?: string; type?: string[]; }; export declare type CreateProofRequestParams = { id?: number; accountAddress?: string; issuerDid: string; circuitId: 'credentialAtomicQueryMTPV2' | 'credentialAtomicQueryMTPV2OnChain' | 'credentialAtomicQuerySigV2' | 'credentialAtomicQuerySigV2OnChain'; challenge?: string; query: ProofQuery; }; export declare type ZKProof = { proof: ProofData; pub_signals: string[]; }; export declare type ProofData = { pi_a: string[]; pi_b: string[][]; pi_c: string[]; protocol: string; }; export declare type StateInfo = { index: string; hash: string; createdAtTimestamp: string; lastUpdateOperationIndex: string; }; export declare type UpdateStateDetails = { stateRootHash: string; gistRootDataStruct: { root: string | number; createdAtTimestamp: string | number; }; proof: string; }; export declare type ZKPProofResponse = { updateStateDetails: UpdateStateDetails; updateStateTx?: TransactionRequest; zkpProof: ZKProof; statesMerkleData?: { issuerId: string; state: StateInfo; merkleProof: string[]; }; }; export declare enum OperationStatus { Signed = "SIGNED", Initialized = "INITIALIZED", Approved = "APPROVED", NotApproved = "NOT_APPROVED" } export declare type Operation = { index: string; operationType: string; details: { '@type': string; contract: string; chain: string; GISTHash: string; stateRootHash: string; timestamp: string; }; status: OperationStatus; creator: string; timestamp: string; }; export declare type RarimoNetworkType = 'mainnet' | 'beta'; export declare type ChainInfo = { id: number; rpcUrl: string; stateContractAddress: string; rarimoNetworkType: RarimoNetworkType; }; export declare type OperationProof = { path: string[]; signature: string; }; export declare type ZKPProofSnapResponse = { chainInfo: ChainInfo; rarimoCoreUrl: string; isSynced: boolean; issuerHexId: string; stateData: StateInfo; merkleProof: { proof: string[]; }; operation: Operation; zkpProof: ZKProof; };