import type { Client } from "../kernel.js";
import type { AgentLightningWallet, AgentLightningWalletFacts, AgentLightningWalletWaitOptions } from "./agent.types.js";
/**
 * The calling agent's Lightning wallet:
 * `POST/GET/DELETE /agent/v1/lightning-wallet`. Run402 mints one budgeted,
 * isolated sub-wallet per principal on its own Hub; the pairing secret is
 * returned exactly once. `mint()` waits for the platform-side broker by
 * default so the one call that first sees the wallet active receives the
 * pairing.
 */
export declare class AgentLightningWallets {
    private readonly client;
    constructor(client: Client);
    /**
     * Mint (idempotent per principal) and, unless `wait` is false, poll until
     * the wallet is active or the wait times out. The returned wallet carries
     * `pairing` only when this call is the one that first observed it active.
     */
    mint(opts?: AgentLightningWalletWaitOptions & {
        wait?: boolean;
    }): Promise<AgentLightningWallet>;
    /** The wallet's facts; the first read of an active wallet hands out `pairing` once. */
    get(): Promise<AgentLightningWallet>;
    /** Poll `get()` until the wallet leaves `minting`. */
    waitForActive(opts?: AgentLightningWalletWaitOptions): Promise<AgentLightningWallet>;
    /** Revoke: the sub-wallet is deleted on the Hub and the pairing stops paying. */
    revoke(): Promise<AgentLightningWalletFacts>;
}
export declare class Agent {
    /** The Lightning wallet: a platform-minted, budgeted wallet on Run402's Hub. */
    readonly lightningWallet: AgentLightningWallets;
    constructor(client: Client);
}
//# sourceMappingURL=agent.d.ts.map