import { type AddressUrlParam } from '../api/types';
import { Endpoint } from '../core';
export declare enum TokensBalancesOrdering {
    AmountAscending = "amountascending",
    AmountDescending = "amountdescending",
    CreatedAtAscending = "createdatascending",
    CreatedAtDescending = "createdatdescending"
}
export interface TokensBalancesRequestParams {
    balanceGt?: string;
    balanceLt?: string;
    collection?: string;
    limit: number;
    offset: number;
    ordering?: TokensBalancesOrdering;
    ownerAddress?: string;
    rootAddress?: string;
    rootAddresses?: string[];
    supportsInterface?: ('tip3_1' | 'tip3_2' | 'tip4_1' | 'tip4_2' | 'tip4_3' | 'tip1155')[];
    token?: string;
    tokenStandard?: string;
}
export interface TokenBalanceItemResponse {
    amount: string;
    blockTime: number;
    collection: string;
    interfaces: ('tip3_1' | 'tip3_2' | 'tip4_1' | 'tip4_2' | 'tip4_3' | 'tip1155')[];
    ownerAddress: string;
    rootAddress: string;
    token: string;
    tokenStandard: string;
    tokenWalletAddress: string;
}
export interface TokensBalancesResponse {
    balances: TokenBalanceItemResponse[];
    limit: number;
    offset: number;
    totalCount: number;
}
export interface TokenDetailsResponse {
    codeHash: string;
    decimals: number;
    name: string;
    rootAddress: string;
    rootOwnerAddress: string;
    symbol: string;
    tokenStandard: string;
    totalSupply: string;
}
export interface TokensSearchRequestParams {
    offset: number;
    limit: number;
    substring?: string;
    tokenOwnerAddress?: string;
}
export interface TokensSearchResponse {
    offset: number;
    limit: number;
    rootTokenContracts: TokenDetailsResponse[];
    totalCount: number;
}
export declare function useTokensApi(baseUrl?: string): {
    balances: Endpoint<never, TokensBalancesRequestParams, TokensBalancesResponse>;
    get: Endpoint<AddressUrlParam, never, TokenDetailsResponse>;
    search: Endpoint<never, TokensSearchRequestParams, TokensSearchResponse>;
};
