import type { Observable } from "rxjs"; import type { ConnectionProvider } from "./provider"; import type { ConnectionState } from "./connection-state"; export declare type ProviderOption = { provider: ConnectionProvider; option: Option; }; export interface IConnector { /** * Get all available connection options (Metamask, Fortmatic, Blocto, Temple etc) */ getOptions(): Promise[]>; /** * Connect using specific option */ connect(option: ProviderOption): void; /** * Subscribe to this observable to get current connection state */ connection: Observable>; } /** * This component is used to save/load last connected provider */ export interface IConnectorStateProvider { getValue(): Promise; setValue(value: string | undefined): Promise; } export declare class DefaultConnectionStateProvider implements IConnectorStateProvider { private readonly key; constructor(key: string); getValue(): Promise; setValue(value: string | undefined): Promise; } export declare class Connector implements IConnector { private readonly providers; private readonly stateProvider?; static pageUnloading: boolean | undefined; private readonly provider; connection: Observable>; constructor(providers: ConnectionProvider[], stateProvider?: IConnectorStateProvider | undefined); /** * Add flag when page unload to avoid disconnect events from connectors */ static initPageUnloadProtection(): void; /** * Push {@link provider} to connectors list * @param provider connection provider */ add(provider: ConnectionProvider