import { type LocalJwksSigningKey } from '@agent-relay/sdk/provisioner/local-jwks'; interface OnOptions { agent?: string; workspace?: string; portAuth: string; portFile: string; shared?: boolean; cloud?: boolean; url?: string; } interface RelayConfigAgent { name: string; scopes: string[]; } interface RelayConfig { version?: string; workspace: string; signing_secret: string; agents: RelayConfigAgent[]; } type LogFn = (...args: unknown[]) => void; interface WorkspaceJoinResponse { workspaceId: string; token: string; relayfileUrl: string; relaycastApiKey?: string; joinCommand: string; } interface WorkspaceSession extends WorkspaceJoinResponse { created: boolean; } type FetchFn = typeof fetch; interface WorkspaceSessionRequest { authBase: string; fallbackRelayfileUrl: string; requestedWorkspaceId?: string; workspaceName?: string; agentName: string; scopes: string[]; tokenSigningKey?: LocalJwksSigningKey; relayDir?: string; relaycastBaseUrl?: string; fetchFn?: FetchFn; /** When true, prefer local workspace session over remote even if authBase is a remote URL */ preferLocalSession?: boolean; } export declare function requestWorkspaceSession(options: WorkspaceSessionRequest): Promise; interface GoOnRelayDeps { log?: LogFn; error?: LogFn; exit?: (code: number) => never | void; fetch?: FetchFn; provision?: (config: RelayConfig, agent: RelayConfigAgent, tokenSigningKey: LocalJwksSigningKey) => Promise; provisionAgentToken?: (opts: { config: RelayConfig; agent: RelayConfigAgent; tokenPath: string; tokenSigningKey: LocalJwksSigningKey; }) => Promise; ensureServicesRunning?: (authBase: string, fileBase: string, jwksUrl: string) => Promise; startServices?: (opts: { authBase: string; fileBase: string; jwksUrl: string; }) => Promise; } export declare function goOnTheRelay(cli: string, options: OnOptions, extraArgs: string[], deps?: GoOnRelayDeps): Promise; export {}; //# sourceMappingURL=start.d.ts.map