/** * Branded entity IDs for the harness/runtime contract. * * Pattern adapted from pingdotgg/t3code (`packages/contracts/src/baseSchemas.ts`). * Branded string types prevent accidentally passing a SessionId where a TurnId * is expected — caught at compile time, zero runtime cost. */ declare const brand: unique symbol; export type Brand = T & { readonly [brand]: B; }; export type HarnessId = Brand; export type ProviderInstanceId = Brand; export type SessionId = Brand; export type ThreadId = Brand; export type TurnId = Brand; export type ToolCallId = Brand; export type EventId = Brand; export type WorkspaceId = Brand; export type AnyEntityId = HarnessId | ProviderInstanceId | SessionId | ThreadId | TurnId | ToolCallId | EventId | WorkspaceId; declare const PREFIXES: { readonly HarnessId: "hns"; readonly ProviderInstanceId: "prv"; readonly SessionId: "ses"; readonly ThreadId: "thr"; readonly TurnId: "trn"; readonly ToolCallId: "tcl"; readonly EventId: "evt"; readonly WorkspaceId: "wsp"; }; type EntityKind = keyof typeof PREFIXES; export declare function makeId(kind: K): Brand; export declare function asId(kind: K, raw: string): Brand; export declare function isId(kind: K, raw: unknown): raw is Brand; export declare function entityKindOf(raw: string): EntityKind | null; export {};