import { RequestFnCall, RpcMessage, RpcTypeToMessageMap, StarknetWindowObject } from '@starknet-io/types-js';
import { AccountInterface, ProviderInterface, ProviderOptions } from 'starknet';
import { Connector, ConnectArgs, ConnectorData, ConnectorIcons } from '../connector';

export interface InjectedConnectorOptions {
    /** The wallet id. */
    id: string;
    /** Wallet human readable name. */
    name?: string;
    /** Wallet icons. */
    icon?: ConnectorIcons;
    /** Used for StarknetReactWrapper/Ready connector + sn-react */
    shouldEmit?: boolean;
}
export declare const injectedWalletIcons: {
    argentX: {
        dark: string;
        light: string;
    };
    braavos: {
        dark: string;
        light: string;
    };
    keplr: {
        dark: string;
        light: string;
    };
    metamask: {
        dark: string;
        light: string;
    };
    fordefi: {
        dark: string;
        light: string;
    };
    xverse: {
        dark: string;
        light: string;
    };
};
export declare class InjectedConnector extends Connector {
    private _wallet?;
    private readonly _options;
    constructor({ options }: {
        options: InjectedConnectorOptions;
    });
    static getInjectedWallet(id: string): StarknetWindowObject;
    static isWalletInjected(id: string): boolean;
    get id(): string;
    get name(): string;
    get icon(): ConnectorIcons;
    available(): boolean;
    chainId(): Promise<bigint>;
    ready(): Promise<boolean>;
    account(provider: ProviderOptions | ProviderInterface): Promise<AccountInterface>;
    connect(_args?: ConnectArgs): Promise<ConnectorData>;
    disconnect(): Promise<void>;
    request<T extends RpcMessage["type"]>(call: RequestFnCall<T>): Promise<RpcTypeToMessageMap[T]["result"]>;
    private isLocked;
    private ensureWallet;
    private onAccountsChanged;
    private onNetworkChanged;
    get wallet(): StarknetWindowObject;
}
