import type { RemoteOperator } from "@aicommander/protocol"; import { type AdminsResult } from "./device-admin.js"; import { type DeviceIdentity } from "./device.js"; export declare const JOB_NOTICE_ID_ENV = "AICOMMANDER_JOB_NOTICE_ID"; export declare const JOB_NOTICE_OPERATOR_ENV = "AICOMMANDER_JOB_NOTICE_OPERATOR"; export declare const JOB_NOTICE_STARTED_ENV = "AICOMMANDER_JOB_NOTICE_STARTED"; export declare const UNKNOWN_OPERATOR = "Account unavailable"; export declare const JOB_NOTICE_ACCOUNTS_TTL_MS: number; type AdminsProvider = () => Promise; /** Stable banner-only provider across reconnects; device rotation gets a fresh cache. */ export declare function jobNoticeAdminsProvider(serverUrl: string, device: DeviceIdentity): AdminsProvider; /** These strings are expanded by cmd: exclude operators, expansions and controls. */ export declare function safeJobNoticeText(value: string): string; export declare function formatJobStartedAt(timestamp: number): string; export declare function setJobNoticeEnv(env: NodeJS.ProcessEnv, jobId: string, operator: string, startedAt: number): void; /** Relay operator ids and server-masked emails only; never the machine alias. */ export declare function resolveJobOperator(operator: RemoteOperator | undefined, serverUrl: string, listAdmins?: AdminsProvider): Promise; /** Identity is optional decoration: a slow relay must not hold up a job. */ export declare function boundedJobOperator(resolve?: () => Promise, timeoutMs?: number): Promise; export {};