/// <reference types="react" />
import type { InjectedAccountWithMeta } from "@polkadot/extension-inject/types";
import type { Signer } from "@polkadot/types/types";
import type { useSession as useSessionHook } from "../session";
import type { useBase as useBaseHook } from "./base";
import type { NetHook } from "./types";
import type { useApi as useApiHook } from "./api";
import type { useStillNotifications } from "../still-notifications/context";
import { Observable } from "rxjs";
import { type SubAccData } from "./types";
export interface Account extends InjectedAccountWithMeta {
    pub: string;
}
export interface ConnectDeps {
    name: string;
    useNet: NetHook;
    useBase: typeof useBaseHook;
    useSession: typeof useSessionHook;
    useApi?: typeof useApiHook;
    useStillNotifications?: typeof useStillNotifications;
}
export declare const getExtensions: () => string[];
export declare const getVersion: (extName?: string) => string | undefined;
export declare const ConnectProvider: import("react").FC<ConnectDeps>;
export declare const useConnect: () => {
    name: string;
    /** @deprecated */
    installed: boolean;
    /** @deprecated */
    account: {
        pub: `0x${string}`;
        address: string;
        meta: {
            genesisHash?: string | null | undefined;
            name?: string | undefined;
            source: string;
        };
        type?: import("@polkadot/util-crypto/types").KeypairType | undefined;
    } | undefined;
    /** @deprecated */
    accounts: {
        pub: `0x${string}`;
        address: string;
        meta: {
            genesisHash?: string | null | undefined;
            name?: string | undefined;
            source: string;
        };
        type?: import("@polkadot/util-crypto/types").KeypairType | undefined;
    }[] | undefined;
    /** @deprecated */
    signer: Signer | undefined;
    /** @deprecated */
    _debug: boolean;
    state$: Observable<{
        signer: Signer | undefined;
        subAccounts: SubAccData | undefined;
        installed: boolean;
        accounts: {
            pub: `0x${string}`;
            address: string;
            meta: {
                genesisHash?: string | null | undefined;
                name?: string | undefined;
                source: string;
            };
            type?: import("@polkadot/util-crypto/types").KeypairType | undefined;
        }[] | undefined;
        _debug: boolean;
        account: {
            pub: `0x${string}`;
            address: string;
            meta: {
                genesisHash?: string | null | undefined;
                name?: string | undefined;
                source: string;
            };
            type?: import("@polkadot/util-crypto/types").KeypairType | undefined;
        } | undefined;
    } | {
        signer: Signer | undefined;
        subAccounts: SubAccData | undefined;
        installed: boolean;
        accounts: {
            pub: `0x${string}`;
            address: string;
            meta: {
                genesisHash?: string | null | undefined;
                name?: string | undefined;
                source: string;
            };
            type?: import("@polkadot/util-crypto/types").KeypairType | undefined;
        }[] | undefined;
        _debug: boolean;
        account: {
            pub: `0x${string}`;
            address: string;
            meta: {
                genesisHash?: string | null | undefined;
                name?: string | undefined;
                source: string;
            };
            type?: import("@polkadot/util-crypto/types").KeypairType | undefined;
        };
    }>;
    connect: (extName?: string | undefined) => Promise<InjectedAccountWithMeta[] | undefined>;
    disconnect: () => void;
    updateMetadata: (debug?: boolean | undefined) => Promise<void>;
    select: (accountOrAddressOrIndex?: string | Account | InjectedAccountWithMeta | number | undefined) => Promise<void>;
};
