import React from 'react';
import { Account, KeyType, SignerProvider, NetworkId } from '@alephium/web3';
import { Theme, Mode, CustomTheme, ConnectorId } from '../types';
import { node } from '@alephium/web3';
import { Connectors } from '../utils/connector';
type Error = string | React.ReactNode | null;
export type ConnectSettingValue = {
    open: boolean;
    setOpen: React.Dispatch<React.SetStateAction<boolean>>;
    route: string;
    setRoute: React.Dispatch<React.SetStateAction<string>>;
    errorMessage: Error;
    connectorId: ConnectorId;
    setConnectorId: React.Dispatch<React.SetStateAction<ConnectorId>>;
    displayAccount?: (account: Account) => string;
    theme: Theme;
    setTheme: React.Dispatch<React.SetStateAction<Theme>>;
    mode: Mode;
    setMode: React.Dispatch<React.SetStateAction<Mode>>;
    customTheme: CustomTheme;
    setCustomTheme: React.Dispatch<React.SetStateAction<CustomTheme>>;
    csrModeOnly: boolean;
};
export declare const ConnectSettingContext: React.Context<ConnectSettingValue | null>;
export declare const useConnectSettingContext: () => ConnectSettingValue;
export type ConnectionStatus = 'connected' | 'connecting' | 'disconnected';
export type AlephiumConnectContextValue = {
    addressGroup?: number;
    setAddressGroup: (addressGroup: number | undefined) => void;
    keyType: KeyType;
    setKeyType: (keyType: KeyType) => void;
    network: NetworkId;
    setNetwork: (network: NetworkId) => void;
    account?: Account;
    setAccount: (account: Account | undefined) => void;
    connectionStatus: ConnectionStatus;
    setConnectionStatus: (status: ConnectionStatus) => void;
    signerProvider?: SignerProvider;
    setSignerProvider: (signerProvider: SignerProvider | undefined) => void;
    connectors: Connectors;
};
export declare const AlephiumConnectContext: React.Context<AlephiumConnectContextValue | null>;
export declare const useAlephiumConnectContext: () => AlephiumConnectContextValue;
export type AlephiumBalanceContextValue = {
    balance?: node.Balance;
    updateBalance: () => void;
    updateBalanceForTx: (txId: string, confirmations?: number) => void;
};
export declare const AlephiumBalanceContext: React.Context<AlephiumBalanceContextValue | null>;
export declare const useAlephiumBalanceContext: () => AlephiumBalanceContextValue;
export {};
