/// import type { MetadataDef, ProviderMeta } from '@soul-wallet/extension-inject/types'; import type { JsonRpcResponse, ProviderInterface, ProviderInterfaceCallback } from '@polkadot/rpc-provider/types'; import type { AccountAuthType, AccountJson, AuthorizeRequest, MetadataRequest, RequestAuthorizeTab, RequestRpcSend, RequestRpcSubscribe, RequestRpcUnsubscribe, RequestSign, ResponseRpcListProviders, ResponseSigning, SigningRequest } from '../types'; import { RequestSettingsType } from '@soul-wallet/extension-base/background/KoniTypes'; import SettingsStore from '@soul-wallet/extension-base/stores/Settings'; import { BehaviorSubject } from 'rxjs'; export interface Resolver { reject: (error: Error) => void; resolve: (result: T) => void; } export interface AuthRequest extends Resolver { id: string; idStr: string; request: RequestAuthorizeTab; url: string; } export declare type AuthUrls = Record; export interface AuthUrlInfo { count: number; id: string; isAllowed: boolean; origin: string; url: string; accountAuthType?: AccountAuthType; isAllowedMap: Record; currentEvmNetworkKey?: string; } interface MetaRequest extends Resolver { id: string; request: MetadataDef; url: string; } declare type Providers = Record ProviderInterface; }>; interface SignRequest extends Resolver { account: AccountJson; id: string; request: RequestSign; url: string; } export declare enum NotificationOptions { None = 0, Normal = 1, PopUp = 2 } export default class State { #private; protected readonly settingsStore: SettingsStore; readonly authSubject: BehaviorSubject; readonly metaSubject: BehaviorSubject; readonly signSubject: BehaviorSubject; constructor(providers?: Providers); get knownMetadata(): MetadataDef[]; get numAuthRequests(): number; get numMetaRequests(): number; get numSignRequests(): number; get allAuthRequests(): AuthorizeRequest[]; get allMetaRequests(): MetadataRequest[]; get allSignRequests(): SigningRequest[]; get authUrls(): AuthUrls; protected getPopup(): number[]; protected popupClose(): void; getSettings(update: (value: RequestSettingsType) => void): void; setSettings(data: RequestSettingsType, callback?: () => void): void; protected popupOpen(): void; private authComplete; private saveCurrentAuthList; private metaComplete; private signComplete; private updateIcon; toggleAuthorization(url: string): AuthUrls; private updateIconAuth; private updateIconMeta; private updateIconSign; authorizeUrl(url: string, request: RequestAuthorizeTab): Promise; ensureUrlAuthorized(url: string): boolean; injectMetadata(url: string, request: MetadataDef): Promise; getAuthRequest(id: string): AuthRequest; getMetaRequest(id: string): MetaRequest; getSignRequest(id: string): SignRequest; rpcListProviders(): Promise; rpcSend(request: RequestRpcSend, port: chrome.runtime.Port): Promise>; rpcStartProvider(key: string, port: chrome.runtime.Port): Promise; rpcSubscribe({ method, params, type }: RequestRpcSubscribe, cb: ProviderInterfaceCallback, port: chrome.runtime.Port): Promise; rpcSubscribeConnected(_request: null, cb: ProviderInterfaceCallback, port: chrome.runtime.Port): void; rpcUnsubscribe(request: RequestRpcUnsubscribe, port: chrome.runtime.Port): Promise; saveMetadata(meta: MetadataDef): void; sign(url: string, request: RequestSign, account: AccountJson): Promise; } export {};