import { Canister, type CanisterOptions } from "@dfinity/utils";
import { type CyclesLedgerService } from "../../declarations";
import type { WithdrawParams } from "./types/cycles-ledger.params";
import type { WithdrawResult } from "./types/cycles-ledger.responses";
export declare class CyclesLedgerCanister extends Canister<CyclesLedgerService> {
    static create({ canisterId: optionsCanisterId, ...options }: CanisterOptions<CyclesLedgerService>): CyclesLedgerCanister;
    /**
     * Withdraws cycles from the ledger to a target canister.
     *
     * @param {WithdrawParams} params - The withdrawal parameters.
     * @param {bigint} params.amount - The number of cycles to withdraw.
     * @param {Principal} params.to - The principal ID of the target canister.
     * @param {Uint8Array} [params.fromSubaccount] - Optional. The subaccount from which cycles are deducted.
     * @param {bigint} [params.createdAtTime] - Optional. The timestamp when the transaction is created.
     *
     * @returns {Promise<WithdrawResult>} The result of the withdrawal operation.
     *
     * @see https://github.com/dfinity/cycles-ledger#withdrawing-cycles
     */
    withdraw: ({ fromSubaccount, createdAtTime, ...rest }: WithdrawParams) => Promise<WithdrawResult>;
}
