import { PropsWithChildren } from 'react';
import { IChain, IWallet } from '../core/types';
export type Screen<T extends string = string> = {
    type: T;
    params?: Record<string, any>;
};
export type Screens = Screen<"LOADER"> | Screen<"TERMS_OF_SERVICE"> | Screen<"CHAINS"> | Screen<"WALLETS"> | Screen<"INSCRIPTIONS"> | Screen<"ERROR">;
export interface State {
    confirmed: boolean;
    visible: boolean;
    screen: Screens;
    selectedWallets: Record<string, IWallet | undefined>;
    chains: Record<string, IChain>;
}
export interface Actions {
    open?: () => void;
    close?: () => void;
    displayLoader?: (message?: string) => void;
    displayChains?: () => void;
    displayWallets?: (chain: string) => void;
    displayInscriptions?: () => void;
    displayTermsOfService?: () => void;
    displayError?: (params: {
        icon?: JSX.Element;
        title: string;
        description: string;
        cancelButton?: string;
        submitButton?: string;
        onCancel?: () => void;
        onSubmit?: () => void;
    }) => void;
    selectWallet?: (chain: string, wallet: IWallet) => void;
    removeWallet?: (chain: string) => void;
    confirm?: () => void;
    reset?: () => void;
}
export declare const StateContext: import('react').Context<State & Actions>;
interface StateProviderProps {
    chains: IChain[];
}
export declare function StateProvider({ children, chains }: PropsWithChildren<StateProviderProps>): import("react/jsx-runtime").JSX.Element;
export {};
