import type { Observable } from "rxjs"; import type { Maybe } from "./common/utils"; import type { ConnectionState } from "./connection-state"; /** * Provider of the connection. * Examples: injected web3, fortmatic, temple tezos wallet, blocto. */ export declare type ConnectionProvider = { /** * Returns unique identifier of the connection provider. It's used to save/load last connected provider */ getId(): string; /** * Checks if this provider is auto-connected. For example, injected mobile providers are connected by default */ isAutoConnected(): Promise; /** * List of available connection options: injected web3 can find out what option is available (Metamask, Trust etc.) */ getOption(): Promise>; /** * Current connection state. If value is undefined, then provider is considered disconnected. */ getConnection(): Observable>; /** * Checks if provider can establish connection without asking user permission (if session is not expired) */ isConnected(): Promise; }; export declare abstract class AbstractConnectionProvider implements ConnectionProvider { abstract getId(): string; abstract getConnection(): Observable>; abstract getOption(): Promise>; abstract isAutoConnected(): Promise; abstract isConnected(): Promise; map(mapper: (c: C) => NewConnection | PromiseLike): ConnectionProvider; mapOption(mapper: (o: O) => NewOption): ConnectionProvider; } export declare class MappedOptionConnectionProvider extends AbstractConnectionProvider { private readonly source; private readonly mapper; constructor(source: ConnectionProvider, mapper: (from: O) => NewO); getId(): string; getConnection(): Observable>; isAutoConnected(): Promise; getOption(): Promise; isConnected(): Promise; } export declare class MappedConnectionProvider extends AbstractConnectionProvider { private readonly source; private readonly mapper; constructor(source: ConnectionProvider, mapper: (from: Connection) => NewConnection | PromiseLike); getId(): string; getConnection(): Observable>; isAutoConnected(): Promise; getOption(): Promise>; isConnected(): Promise; }