import type { AmountArgumentOptionsDto, TokenBalanceScanResponseDto, YieldDto } from "@stakekit/api-hooks";
import { Networks } from "@stakekit/common";
import BigNumber from "bignumber.js";
import { Maybe } from "purify-ts";
import type { SupportedSKChains } from "./chains";
import type { InitParams } from "./init-params";
import type { PositionsData } from "./positions";
import type { TokenString } from "./tokens";
export type PreferredTokenYieldsPerNetwork = {
    [Key in SupportedSKChains]?: Record<TokenString, "*" | (YieldDto["id"] & {})>;
};
export declare const getInitialToken: (args: {
    initQueryParams: Maybe<InitParams>;
    tokenBalances: TokenBalanceScanResponseDto[];
    defaultTokens: TokenBalanceScanResponseDto[];
    network: SupportedSKChains | null;
    preferredTokenYieldsPerNetwork: PreferredTokenYieldsPerNetwork | null;
}) => import("purify-ts/Maybe").Maybe<import("@stakekit/api-hooks").TokenDto>;
export declare const canBeInitialYield: (args: {
    initQueryParams: Maybe<InitParams>;
    yieldDto: YieldDto;
    tokenBalanceAmount: BigNumber;
    positionsData: PositionsData;
}) => boolean;
export declare const getInitSelectedValidators: (args: {
    initQueryParams: Maybe<InitParams>;
    yieldDto: YieldDto;
}) => Map<string, import("@stakekit/api-hooks").ValidatorDto>;
export declare const isForceMaxAmount: (args: AmountArgumentOptionsDto) => boolean;
export declare const isNetworkWithEnterMinBasedOnPosition: (network: Networks) => boolean;
export declare const getMinStakeAmount: (yieldDto: YieldDto, positionsData: PositionsData) => BigNumber;
export declare const getMinUnstakeAmount: (yieldDto: YieldDto, pricePerShare: string | null) => BigNumber;
