import type { NoTxOptions, PopulatedTransaction, TransactionOptions, TransactionResult } from '../../core/types.js';
import type { CheckAllowanceProps, CheckAllowanceResult, GetAllowanceProps, WithdrawApproveProps } from './types.js';
import { BusModule } from '../bus-module.js';
export declare class LidoSDKWithdrawApprove extends BusModule {
    approve(props: WithdrawApproveProps): Promise<TransactionResult>;
    approveSimulateTx(props: NoTxOptions<WithdrawApproveProps>): Promise<import("viem").SimulateContractReturnType<readonly [{
        readonly constant: false;
        readonly inputs: readonly [{
            readonly name: "_spender";
            readonly type: "address";
        }, {
            readonly name: "_amount";
            readonly type: "uint256";
        }];
        readonly name: "approve";
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "bool";
        }];
        readonly payable: false;
        readonly stateMutability: "nonpayable";
        readonly type: "function";
    }, {
        readonly constant: true;
        readonly inputs: readonly [{
            readonly name: "_owner";
            readonly type: "address";
        }, {
            readonly name: "_spender";
            readonly type: "address";
        }];
        readonly name: "allowance";
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "uint256";
        }];
        readonly payable: false;
        readonly stateMutability: "view";
        readonly type: "function";
    }], "approve", readonly [`0x${string}`, bigint], import("viem").Chain | undefined, import("viem").Account | undefined, undefined, import("viem").JsonRpcAccount>>;
    approvePopulateTx(props: NoTxOptions<WithdrawApproveProps>): Promise<PopulatedTransaction>;
    approveGasLimit({ account: accountProp, token, amount, }: Required<NoTxOptions<WithdrawApproveProps>>, options?: TransactionOptions): Promise<bigint>;
    getAllowance({ account: accountProp, token, }: GetAllowanceProps): Promise<bigint>;
    checkAllowance({ amount: _amount, account: accountProp, token, }: CheckAllowanceProps): Promise<CheckAllowanceResult>;
}
//# sourceMappingURL=approve.d.ts.map