import { ChainId } from '@envanik/sdk';
import { TokenList } from '@envanik/token-lists';
import { SUPPORTED_WALLETS } from 'src/wallet';
export declare type PopupContent = {
    txn: {
        hash: string;
        success: boolean;
        summary?: string;
    };
} | {
    listUpdate: {
        listUrl: string;
        oldList: TokenList;
        newList: TokenList;
        auto: boolean;
    };
};
export declare enum ApplicationModal {
    WALLET = 0,
    POOL_DETAIL = 1,
    DELEGATE = 2,
    VOTE = 3
}
export declare type PopupList = Array<{
    key: string;
    show: boolean;
    content: PopupContent;
    removeAfterMs: number | null;
}>;
export interface ApplicationState {
    readonly blockNumbers: {
        readonly [chainId: number]: number;
    };
    readonly popupList: PopupList;
    readonly openModal: ApplicationModal | null;
    readonly selectedPoolId: string | undefined;
    readonly isAvailableHashpack: boolean;
    readonly wallets: typeof SUPPORTED_WALLETS;
    readonly useSubgraph: {
        [ChainId.FUJI]: boolean;
        [ChainId.AVALANCHE]: boolean;
        [ChainId.WAGMI]: boolean;
        [ChainId.COSTON]: boolean;
        [ChainId.SONGBIRD]: boolean;
        [ChainId.FLARE_MAINNET]: boolean;
        [ChainId.HEDERA_TESTNET]: boolean;
        [ChainId.HEDERA_MAINNET]: boolean;
        [ChainId.NEAR_MAINNET]: boolean;
        [ChainId.NEAR_TESTNET]: boolean;
        [ChainId.COSTON2]: boolean;
        [ChainId.ETHEREUM]: boolean;
        [ChainId.POLYGON]: boolean;
        [ChainId.FANTOM]: boolean;
        [ChainId.XDAI]: boolean;
        [ChainId.BSC]: boolean;
        [ChainId.ARBITRUM]: boolean;
        [ChainId.CELO]: boolean;
        [ChainId.OKXCHAIN]: boolean;
        [ChainId.VELAS]: boolean;
        [ChainId.AURORA]: boolean;
        [ChainId.CRONOS]: boolean;
        [ChainId.FUSE]: boolean;
        [ChainId.MOONRIVER]: boolean;
        [ChainId.MOONBEAM]: boolean;
        [ChainId.OP]: boolean;
        [ChainId.EVMOS_TESTNET]: boolean;
        [ChainId.EVMOS_MAINNET]: boolean;
    };
}
export declare function useApplicationState(): {
    blockNumbers: {
        readonly [chainId: number]: number;
    };
    isAvailableHashpack: boolean;
    selectedPoolId: string | undefined;
    openModal: ApplicationModal | null;
    popupList: PopupList;
    wallets: {
        [key: string]: import("../..").PangolinWallet;
    };
    useSubgraph: {
        43113: boolean;
        43114: boolean;
        11111: boolean;
        16: boolean;
        19: boolean;
        14: boolean;
        296: boolean;
        295: boolean;
        329847900: boolean;
        329847901: boolean;
        114: boolean;
        1: boolean;
        137: boolean;
        250: boolean;
        100: boolean;
        56: boolean;
        42161: boolean;
        42220: boolean;
        66: boolean;
        106: boolean;
        1313161554: boolean;
        25: boolean;
        122: boolean;
        1285: boolean;
        1284: boolean;
        10: boolean;
        9000: boolean;
        9001: boolean;
    };
    updateBlockNumber: ({ chainId, blockNumber }: {
        chainId: number;
        blockNumber: number;
    }) => void;
    setAvailableHashpack: (args_0: boolean | ((prev: boolean) => boolean)) => void;
    setSelectedPooId: (args_0: string | ((prev: string | undefined) => string | undefined) | undefined) => void;
    setOpenModal: (args_0: ApplicationModal | ((prev: ApplicationModal | null) => ApplicationModal | null) | null) => void;
    setWallets: (args_0: {
        [key: string]: import("../..").PangolinWallet;
    } | ((prev: {
        [key: string]: import("../..").PangolinWallet;
    }) => {
        [key: string]: import("../..").PangolinWallet;
    })) => void;
    addPopup: ({ content, key, removeAfterMs }: {
        content: PopupContent;
        key?: string | undefined;
        removeAfterMs?: number | undefined;
    }) => void;
    removePopup: ({ key }: {
        key: string;
    }) => void;
    setUseSubgraph: (args_0: {
        43113: boolean;
        43114: boolean;
        11111: boolean;
        16: boolean;
        19: boolean;
        14: boolean;
        296: boolean;
        295: boolean;
        329847900: boolean;
        329847901: boolean;
        114: boolean;
        1: boolean;
        137: boolean;
        250: boolean;
        100: boolean;
        56: boolean;
        42161: boolean;
        42220: boolean;
        66: boolean;
        106: boolean;
        1313161554: boolean;
        25: boolean;
        122: boolean;
        1285: boolean;
        1284: boolean;
        10: boolean;
        9000: boolean;
        9001: boolean;
    } | ((prev: {
        43113: boolean;
        43114: boolean;
        11111: boolean;
        16: boolean;
        19: boolean;
        14: boolean;
        296: boolean;
        295: boolean;
        329847900: boolean;
        329847901: boolean;
        114: boolean;
        1: boolean;
        137: boolean;
        250: boolean;
        100: boolean;
        56: boolean;
        42161: boolean;
        42220: boolean;
        66: boolean;
        106: boolean;
        1313161554: boolean;
        25: boolean;
        122: boolean;
        1285: boolean;
        1284: boolean;
        10: boolean;
        9000: boolean;
        9001: boolean;
    }) => {
        43113: boolean;
        43114: boolean;
        11111: boolean;
        16: boolean;
        19: boolean;
        14: boolean;
        296: boolean;
        295: boolean;
        329847900: boolean;
        329847901: boolean;
        114: boolean;
        1: boolean;
        137: boolean;
        250: boolean;
        100: boolean;
        56: boolean;
        42161: boolean;
        42220: boolean;
        66: boolean;
        106: boolean;
        1313161554: boolean;
        25: boolean;
        122: boolean;
        1285: boolean;
        1284: boolean;
        10: boolean;
        9000: boolean;
        9001: boolean;
    })) => void;
};
