import { APIClient } from "../Client.js";
import { BlockIdType, Checksum256Type, Name, NameType, PackedTransaction, SignedTransactionType, UInt32Type } from "../../chain/index.js";
import { AccountObject, AccountsByAuthorizers, GetAbiResponse, GetAccountsByAuthorizersParams, GetBlockHeaderStateResponse, GetBlockInfoResponse, GetBlockResponse, GetCodeResponse, GetCurrencyStatsResponse, GetInfoResponse, GetProducerScheduleResponse, GetProtocolFeaturesParams, GetProtocolFeaturesResponse, GetRawAbiResponse, GetTableByScopeParams, GetTableByScopeResponse, GetTableRowsParams, GetTableRowsParamsKeyed, GetTableRowsParamsTyped, GetTableRowsResponse, GetTransactionStatusResponse, PushTransactionResponse, SendTransaction2Options, SendTransaction2Response, SendTransactionResponse, TableIndexType, TableIndexTypes } from "./Types.js";
import { ABISerializableConstructor } from "../../serializer/index.js";
export declare class ChainAPI {
    private client;
    constructor(client: APIClient);
    get_abi(accountName: NameType): Promise<GetAbiResponse>;
    get_code(accountName: NameType): Promise<GetCodeResponse>;
    get_raw_abi(accountName: NameType): Promise<GetRawAbiResponse>;
    get_account(accountName: NameType, responseType?: typeof AccountObject): Promise<AccountObject>;
    get_accounts_by_authorizers(params: GetAccountsByAuthorizersParams): Promise<AccountsByAuthorizers>;
    get_activated_protocol_features(params?: GetProtocolFeaturesParams): Promise<GetProtocolFeaturesResponse>;
    get_block(block_num_or_id: BlockIdType | UInt32Type): Promise<GetBlockResponse>;
    get_block_header_state(block_num_or_id: BlockIdType | UInt32Type): Promise<GetBlockHeaderStateResponse>;
    get_block_info(block_num: UInt32Type): Promise<GetBlockInfoResponse>;
    get_currency_balance(contract: NameType, accountName: NameType, symbol?: string): Promise<import("../../index.js").Asset[]>;
    get_currency_stats(contract: NameType, symbol: string): Promise<GetCurrencyStatsResponse>;
    get_info(): Promise<GetInfoResponse>;
    get_producer_schedule(): Promise<GetProducerScheduleResponse>;
    compute_transaction(tx: SignedTransactionType | PackedTransaction): Promise<SendTransactionResponse>;
    send_read_only_transaction(tx: SignedTransactionType | PackedTransaction): Promise<SendTransactionResponse>;
    push_transaction(tx: SignedTransactionType | PackedTransaction): Promise<PushTransactionResponse>;
    send_transaction(tx: SignedTransactionType | PackedTransaction): Promise<SendTransactionResponse>;
    send_transaction2(tx: SignedTransactionType | PackedTransaction, options?: SendTransaction2Options): Promise<SendTransaction2Response>;
    get_table_rows<Index extends TableIndexType = Name>(params: GetTableRowsParams<Index>): Promise<GetTableRowsResponse<Index>>;
    get_table_rows<Key extends keyof TableIndexTypes>(params: GetTableRowsParamsKeyed<TableIndexTypes[Key], Key>): Promise<GetTableRowsResponse<TableIndexTypes[Key]>>;
    get_table_rows<Row extends ABISerializableConstructor, Index extends TableIndexType = Name>(params: GetTableRowsParamsTyped<Index, Row>): Promise<GetTableRowsResponse<Index, InstanceType<Row>>>;
    get_table_rows<Row extends ABISerializableConstructor, Key extends keyof TableIndexTypes>(params: GetTableRowsParamsTyped<TableIndexTypes[Key], Row> & GetTableRowsParamsKeyed<TableIndexTypes[Key], Key>): Promise<GetTableRowsResponse<TableIndexTypes[Key], InstanceType<Row>>>;
    get_table_by_scope(params: GetTableByScopeParams): Promise<GetTableByScopeResponse>;
    get_transaction_status(id: Checksum256Type): Promise<GetTransactionStatusResponse>;
}
//# sourceMappingURL=Chain.d.ts.map