import { Currency, CurrencyAmount, ElixirPool, FeeAmount, Position, Price } from '@envanik/sdk';
import { PoolState } from 'src/hooks/elixir/hooks/types';
import { Bound, Field } from './atom';
export declare function useMintState(): import("./atom").MintState;
export declare function useMintActionHandlers(noLiquidity: boolean | undefined): {
    onFieldAInput: (typedValue: string) => void;
    onFieldBInput: (typedValue: string) => void;
    onLeftRangeInput: (typedValue: string) => void;
    onRightRangeInput: (typedValue: string) => void;
    onStartPriceInput: (typedValue: string) => void;
    onSetFeeAmount: (value: FeeAmount) => void;
    onCurrencySelection: (field: Field, currency: Currency) => void;
    onResetMintState: () => void;
    onSwitchCurrencies: () => void;
    onResettMintStateOnToggle: () => void;
};
export interface DerivedMintInfo {
    pool?: ElixirPool | null;
    poolState: PoolState;
    ticks: {
        [bound in Bound]?: number | undefined;
    };
    price?: Price;
    pricesAtTicks: {
        [bound in Bound]?: Price | undefined;
    };
    pricesAtLimit: {
        [bound in Bound]?: Price | undefined;
    };
    currencies: {
        [field in Field]?: Currency;
    };
    currencyBalances: {
        [field in Field]?: CurrencyAmount;
    };
    dependentField: Field;
    parsedAmounts: {
        [field in Field]?: CurrencyAmount;
    };
    position: Position | undefined;
    noLiquidity?: boolean;
    errorMessage?: string;
    invalidPool: boolean;
    outOfRange: boolean;
    invalidRange: boolean;
    depositADisabled: boolean;
    depositBDisabled: boolean;
    invertPrice: boolean;
    ticksAtLimit: {
        [bound in Bound]?: boolean | undefined;
    };
}
export declare function useDerivedMintInfo(existingPosition?: Position): DerivedMintInfo;
export declare function useRangeHopCallbacks(currencyA: Currency | undefined, currencyB: Currency | undefined, feeAmount: FeeAmount | undefined, tickLower: number | undefined, tickUpper: number | undefined, pool?: ElixirPool | undefined | null): {
    getDecrementLower: () => string;
    getIncrementLower: () => string;
    getDecrementUpper: () => string;
    getIncrementUpper: () => string;
    getSetFullRange: () => void;
};
