import { TransactionType } from '@bitgo/sdk-core';
import { BaseCoin as CoinConfig } from '@bitgo/statics';
import { Transaction } from './transaction';
import { TransactionBuilder } from './transactionBuilder';
export declare class CloseAtaBuilder extends TransactionBuilder {
    protected _closeAtaEntries: {
        accountAddress: string;
        destinationAddress: string;
        authorityAddress: string;
    }[];
    private _apiMode;
    constructor(_coinConfig: Readonly<CoinConfig>);
    protected get transactionType(): TransactionType;
    /**
     * Sets the ATA account address to close (single-ATA API, backward compatible).
     * Cannot be mixed with addCloseAtaInstruction().
     */
    accountAddress(accountAddress: string): this;
    /**
     * Sets the destination address for rent SOL (single-ATA API, backward compatible).
     * Cannot be mixed with addCloseAtaInstruction().
     */
    destinationAddress(destinationAddress: string): this;
    /**
     * Sets the authority address / ATA owner (single-ATA API, backward compatible).
     * Cannot be mixed with addCloseAtaInstruction().
     */
    authorityAddress(authorityAddress: string): this;
    /**
     * Throws if the bulk-ATA API has already been used on this builder.
     */
    private _assertSingleAtaApiUsable;
    /**
     * Ensures a single entry exists in _closeAtaEntries for the legacy API.
     */
    private _ensureSingleEntry;
    /**
     * Add an ATA to close in this transaction (for bulk closure).
     * Cannot be mixed with the single-ATA API (accountAddress/destinationAddress/authorityAddress).
     *
     * @param {string} accountAddress - the ATA address to close
     * @param {string} destinationAddress - where rent SOL goes (root wallet address)
     * @param {string} authorityAddress - ATA owner who must sign
     */
    addCloseAtaInstruction(accountAddress: string, destinationAddress: string, authorityAddress: string): this;
    /** @inheritDoc */
    initBuilder(tx: Transaction): void;
    /** @inheritdoc */
    protected buildImplementation(): Promise<Transaction>;
}
//# sourceMappingURL=closeAtaBuilder.d.ts.map