/** * Assert every workflow-id constraint that predates WFT-95: a string, * non-empty, at most {@link MAX_WORKFLOW_ID_LENGTH} characters, and free of * control characters. Deliberately does NOT reject the exact strings `.` or * `..` — those were valid workflow ids before WFT-95 and may already be * durably persisted (a schedule id, a persisted `currentWorkflowId`, a * queued run's `workflowId`, schedule-run metadata, an `executionStateOwnerId` * or `parentWorkflowId`/`restartedFrom.workflowId` on a decoded * `WorkflowState`). Decode and schedule-control (lookup, pause, resume, * cancel, update) paths must keep accepting them so an upgrade doesn't * strand pre-existing data or make a pre-existing schedule/workflow * unmanageable; only fresh admission ({@link assertValidWorkflowId}) adds * the `.`/`..` rejection. * * Takes `unknown`, not `string` (WFT-95 review): every caller passes an * already-decoded field whose static `WorkflowState`/`ScheduleState` type * says `string` but whose runtime shape is untrusted — the storage record * could be corrupted. Without an explicit `typeof` guard here, a decoded * array of strings would pass (`.length`, iteration, and * `containsControlCharacter()`'s per-element `codePointAt()` all succeed on * an array too), silently accepting a malformed field instead of dropping * it — the same guard `coerceStartWorkflowId()` performed before this * predicate existed. */ export declare function assertDecodableWorkflowId(id: unknown, fieldName?: string): asserts id is string; /** Whether `id` satisfies {@link assertDecodableWorkflowId}. */ export declare function isDecodableWorkflowId(id: unknown): boolean; /** * Whether `id` is exactly `.` or `..` — the two literals * {@link assertValidWorkflowId} rejects at fresh admission (WFT-95). Exported * so callers that need to recognize "this id is the one strict admission * would reject" without re-running the full assertion (for example, to * decide whether a caller-facing id MIGHT be a legacy pre-WFT-95 record * worth checking storage for) share one definition instead of re-deriving * the literal comparison. */ export declare function isReservedWorkflowIdLiteral(id: string): boolean; export declare function assertValidWorkflowId(id: string, fieldName?: string): void;