import type { ExtensionAPI, ExtensionCommandContext, ExtensionContext } from "@earendil-works/pi-coding-agent"; import { type Ed25519Keypair } from "./pairing/crypto.js"; import type { InitialRelayResult } from "./runtime/relay_lifecycle.js"; export type { InitialRelayResult } from "./runtime/relay_lifecycle.js"; type CommandStartContext = Pick; export interface RemoteCommandDependencies { start(ctx: CommandStartContext): Promise; waitForInitialRelay(): Promise; stop(): void; state(): "idle" | "started"; relayStatus(): string; relayUrl(): string | null; endpointIdentity(): Readonly<{ endpointId: string; runtimeInstanceId: string; }>; activeOwnerCount(): number; isOwnerActive(ownerId: string): boolean; closeOwner(ownerId: string, reason: "peer_stop"): void; updateEndpoint(): Promise; displayName(cwd?: string): string; keypair(): Ed25519Keypair | null; hasRelay(): boolean; publishPairingOffer(code: string, expiresAt: number): boolean; setCommandContext(ctx: ExtensionCommandContext): void; runInternalSessionNew(token: string, ctx: ExtensionCommandContext): Promise; } export declare function persistModelDefault(provider: string, modelId: string): void; export declare function registerCommands(pi: ExtensionAPI, deps: RemoteCommandDependencies): void;