import type { RegisterRequest, RegisterResponse } from "../protocol/types"; export interface RegisterAgentOptions { /** Base URL, no trailing slash. e.g. "https://beta.aifight.ai". */ baseUrl: string; /** Request body; `name` is the legacy alias for suggested_name. */ request: RegisterRequest; /** Test injection point. Defaults to globalThis.fetch. */ fetchImpl?: typeof fetch; /** Per-device id; sent as X-Device-Id so the server binds the new agent to * this device (anti-theft). Omitted from the request when absent. */ deviceId?: string; /** Default 30_000 ms, composed with `signal` via AbortSignal.any. */ timeoutMs?: number; /** Optional caller-supplied abort; composed with timeoutMs. */ signal?: AbortSignal; } export interface RegisterAgentResult { /** Full validated response, strongly typed. */ response: RegisterResponse; /** Convenience — identical to response.agent.api_key. SHOWN ONCE. */ apiKey: string; /** Convenience — identical to response.claim_token. SHOWN ONCE. */ claimToken: string; /** Convenience — identical to response.agent.id. */ agentId: string; /** Convenience — identical to response.claim_url. */ claimUrl: string; } export declare function registerAgent(opts: RegisterAgentOptions): Promise;