import type { ParsedArgs } from './commands'; import { type RemoteDaemonTarget } from './daemonClient'; type MachineOs = 'macOS' | 'Windows' | 'Linux'; export interface TailnetMachine { name: string; dnsName: string; os: MachineOs; online: boolean; ips: string[]; self: boolean; /** Tailscale login of the machine's owner. */ owner: string; /** Signed in to this machine's own login. Other people's machines let in only who their visibility allows. */ mine: boolean; } export type Tailnet = /** `httpsCertificates` is the tailnet-wide setting that workspaces need on every machine. */ { ok: true; self: TailnetMachine; machines: TailnetMachine[]; httpsCertificates: boolean; } | { ok: false; reason: string; fix: string; }; /** * This machine and the other Mac, Windows, and Linux machines in its tailnet, from `tailscale status --json`: * the ones the desktop app's device switcher offers. Each machine decides who it lets in. */ export declare function readTailnet(): Promise; /** Finds a machine by Tailscale name, MagicDNS name, Tailscale IP, or unique name prefix. */ export declare function resolveMachine(query: string, machines: readonly TailnetMachine[]): TailnetMachine; export declare function workspaceTarget(machine: TailnetMachine): RemoteDaemonTarget; export declare function runWorkspaceList(parsed: ParsedArgs): Promise; export declare function runWorkspaceSetEnabled(parsed: ParsedArgs, enabled: boolean): Promise; export declare function runWorkspaceRead(parsed: ParsedArgs): Promise; export declare function runWorkspaceWrite(parsed: ParsedArgs): Promise; export declare function runWorkspaceExec(parsed: ParsedArgs): Promise; export interface WorkspaceSummary { state: 'on' | 'off'; machine: string | null; reason?: string; fix?: string; otherMachines: Array<{ name: string; os: MachineOs; online: boolean; owner: string; mine: boolean; }>; lines: string[]; } /** The short workspaces block that help, doctor, and agent-context print. */ export declare function readWorkspaceSummary(paneDir?: string): Promise; /** For a path or Session ID that is not on this machine: the likely machine and the exact command to use. */ export declare function workspaceHintFor(error: NodeJS.ErrnoException, parsed: ParsedArgs): Promise; export {}; //# sourceMappingURL=workspace.d.ts.map