///
import { NetworkInfo } from '@c2x/wallet-types';
import { WebExtensionNetworkInfo, WebExtensionPostPayload, WebExtensionSignBytesPayload, WebExtensionSignPayload, WebExtensionTxResult } from '@c2x/web-extension-interface';
import { CreateTxOptions } from '@xpla/xpla.js';
import { Subscribable } from 'rxjs';
import { ExtensionInfo } from './multiChannel';
import { ExtensionRouterStates } from './types';
export interface ExtensionRouterOptions {
defaultNetwork: NetworkInfo;
selectExtension?: (extensionInfos: ExtensionInfo[]) => Promise;
hostWindow?: Window;
dangerously__chromeExtensionCompatibleBrowserCheck: (userAgent: string) => boolean;
}
export declare class ExtensionRouter {
private readonly options;
private readonly _states;
private readonly _extensionInfos;
private _connector;
constructor(options: ExtensionRouterOptions);
states: () => import("rxjs").Observable;
getLastStates: () => ExtensionRouterStates;
connect: (identifier?: string) => Promise;
disconnect: () => void;
requestApproval: () => void;
refetchStates: () => void;
post: (tx: CreateTxOptions, xplaAddress?: string) => Subscribable>;
sign: (tx: CreateTxOptions, xplaAddress?: string) => Subscribable>;
signBytes: (bytes: Buffer, xplaAddress?: string) => Subscribable>;
hasCW20Tokens: (chainID: string, ...tokenAddrs: string[]) => Promise<{
[tokenAddr: string]: boolean;
}>;
addCW20Tokens: (chainID: string, ...tokenAddrs: string[]) => Promise<{
[tokenAddr: string]: boolean;
}>;
hasNetwork: (network: Omit) => Promise;
addNetwork: (network: WebExtensionNetworkInfo) => Promise;
private createConnector;
}