import type { YieldDto } from "@stakekit/api-hooks";
import { type QueryClient } from "@tanstack/react-query";
import { EitherAsync } from "purify-ts";
import { Observable } from "rxjs";
import type { InitParams } from "../../domain/types/init-params";
import type { PositionsData } from "../../domain/types/positions";
import { type PreferredTokenYieldsPerNetwork } from "../../domain/types/stake";
import type { SKWallet } from "../../domain/types/wallet";
import type { ValidatorsConfig } from "../../domain/types/yields";
export declare const useStreamMultiYields: (yieldIds: string[]) => YieldDto[];
export declare const useMultiYields: <T = YieldDto[]>(yieldIds: string[], opts?: {
    select?: (val: YieldDto[]) => T;
    enabled?: boolean;
}) => import("@tanstack/react-query").UseQueryResult<import("@tanstack/react-query").NoInfer<T>, Error>;
export declare const getFirstEligibleYield: (params: Parameters<typeof firstEligibleYield$>[0]) => EitherAsync<Error, YieldDto | null>;
declare const firstEligibleYield$: (args: {
    isLedgerLive: boolean;
    queryClient: QueryClient;
    isConnected: boolean;
    network: SKWallet["network"];
    yieldIds: string[];
    initParams: InitParams;
    positionsData: PositionsData;
    tokenBalanceAmount: BigNumber;
    validatorsConfig: ValidatorsConfig;
    preferredTokenYieldsPerNetwork: PreferredTokenYieldsPerNetwork | null;
}) => Observable<YieldDto | null>;
export declare const getCachedFirstEligibleYield: ({ queryClient, yieldIds, }: {
    queryClient: QueryClient;
    yieldIds: string[];
}) => import("purify-ts/Maybe").Maybe<YieldDto>;
export {};
