import { type AddressUrlParam } from '../api/types';
import { type TokenDetailsResponse, type TokensSearchRequestParams, type TokensSearchResponse } from '../api/useTokensApi';
import { Endpoint } from '../core';
export interface TokensBalancesSearchRequestParams {
    amountGe?: string;
    amountLe?: string;
    cursor?: {
        data: string;
        kind: 'Next' | 'Prev';
    };
    limit: number;
    ownerAddress?: string;
    rootAddress?: string;
    rootAddresses?: string[];
    token?: string;
    tokenWalletAddress?: string;
    workchain?: number;
}
export interface TokenBalanceResponse {
    amount: string;
    createdAt: number;
    ownerAddress: string;
    rootAddress: string;
    token: string;
    tokenWalletAddress: string;
    workchain: number;
}
export interface TokensBalancesSearchResponse {
    balances: TokenBalanceResponse[];
    limit: number;
    offset: number;
    totalCount: number;
}
export interface TokenRootDetailsResponse extends Omit<TokenDetailsResponse, 'decimals' | 'rootOwnerAddress'> {
    blockTime: number;
    ownerAddress: string;
    scale: number;
    token: string;
    workchain: number;
}
export declare function useExperimentalTokensApi(baseUrl?: string): {
    balances: Endpoint<never, TokensBalancesSearchRequestParams, TokensBalancesSearchResponse>;
    get: Endpoint<AddressUrlParam, never, TokenRootDetailsResponse>;
    search: Endpoint<never, TokensSearchRequestParams, TokensSearchResponse>;
};
