export interface SerializedToken {
    chainId: number;
    address: string;
    decimals: number;
    symbol?: string;
    name?: string;
}
export interface SerializedPair {
    token0: SerializedToken;
    token1: SerializedToken;
}
export interface UserState {
    userSlippageTolerance: number;
    timestamp: number;
    userExpertMode: boolean;
    userDeadline: string;
    userShowBalances: boolean;
    userApproveInfinite: boolean;
    tokens: {
        [chainId: number]: {
            [address: string]: SerializedToken;
        };
    };
    pairs: {
        [chainId: number]: {
            [key: string]: SerializedPair;
        };
    };
    wallet: string | null;
}
export declare const initialState: UserState;
export declare function useUserAtom(): {
    userState: UserState;
    updateUserSlippageTolerance: ({ userSlippageTolerance }: {
        userSlippageTolerance: number;
    }) => void;
    updateUserExpertMode: ({ userExpertMode }: {
        userExpertMode: boolean;
    }) => void;
    updateUserDeadline: ({ userDeadline }: {
        userDeadline: string;
    }) => void;
    updateUserShowBalances: ({ userShowBalances }: {
        userShowBalances: boolean;
    }) => void;
    updateUserApproveInfinite: ({ userApproveInfinite }: {
        userApproveInfinite: boolean;
    }) => void;
    updateWallet: (wallet: string | null) => void;
    addSerializedToken: ({ serializedToken }: {
        serializedToken: SerializedToken;
    }) => void;
    removeSerializedToken: ({ address, chainId }: {
        address: string;
        chainId: number;
    }) => void;
    addSerializedPair: ({ serializedPair }: {
        serializedPair: SerializedPair;
    }) => void;
};
