import { type QueryParams } from "@dfinity/utils";
import type { Principal } from "@icp-sdk/core/principal";
import { type IcrcIndexDid, type IcrcIndexService } from "../../declarations";
import { IcrcCanister } from "./canister";
import type { IcrcLedgerCanisterOptions } from "./types/canister.options";
import type { GetIndexAccountTransactionsParams, ListSubaccountsParams } from "./types/index-ng.params";
export declare class IcrcIndexCanister extends IcrcCanister<IcrcIndexService> {
    static create(options: IcrcLedgerCanisterOptions<IcrcIndexService>): IcrcIndexCanister;
    /**
     * Get the transactions of an account
     *
     * Always certified.
     * `get_account_transactions` needs to be called with an update
     * because the index canisters makes a call to the ledger canister to get the transaction data.
     * Index Canister only holds the transactions ids in state, not the whole transaction data.
     */
    /**
     * Get the transactions of an account.
     *
     * @param {GetAccountTransactionsParams} params The parameters to get the transactions of an account.
     * @returns {Promise<GetTransactions>} The list of transactions and further related information of the given account.
     */
    getTransactions: ({ certified, ...rest }: GetIndexAccountTransactionsParams) => Promise<IcrcIndexDid.GetTransactions>;
    /**
     * Returns the ledger canister ID related to the index canister.
     */
    ledgerId: (params: QueryParams) => Promise<Principal>;
    /**
     * Returns the status of the index canister.
     *
     * @param {QueryParams} params The parameters to get the status of the index canister.
     * @returns {Promise<Status>} The status of the index canister.
     */
    status: (params: QueryParams) => Promise<IcrcIndexDid.Status>;
    /**
     * Returns the list of subaccounts for a given owner.
     *
     * @param {ListSubaccountsParams} params The parameters to get the list of subaccounts.
     * @returns {Promise<Array<SubAccount>>} The list of subaccounts.
     */
    listSubaccounts: ({ certified, ...rest }: ListSubaccountsParams) => Promise<Array<IcrcIndexDid.SubAccount>>;
}
