import type { AttributionSummary, CausalEvent, RepoConcurrencyAuthority, RepoConcurrencyPosture } from "../contracts/causal-ontology.js"; export interface RepoConcurrencyTouch { readonly contributorKey: string; readonly path: string; } export interface RepoConcurrencyWorktreeHistory { readonly worktreeId: string; readonly active: boolean; readonly checkoutEpochId: string | null; readonly causalSessionIds: readonly string[]; readonly actorIds: readonly string[]; readonly contributorKeys: readonly string[]; readonly explicitHandoff: boolean; readonly touches: readonly RepoConcurrencyTouch[]; } export interface RepoConcurrencySummary { readonly posture: RepoConcurrencyPosture; readonly authority: RepoConcurrencyAuthority; readonly observedWorktreeCount: number; readonly observedCausalSessionCount: number; readonly observedActorCount: number; readonly overlappingPathCount: number; readonly summary: string; readonly daemonSessionLiveness?: RepoConcurrencyDaemonSessionLiveness; } export interface RepoConcurrencyDaemonSessionLiveness { readonly idleTimeoutMs: number; readonly liveSessionCount: number; readonly staleSessionCount: number; } interface RepoConcurrencyInput { readonly currentWorktreeId: string; readonly histories: readonly RepoConcurrencyWorktreeHistory[]; } export interface RepoConcurrencyLiveSession { readonly bindState: "bound" | "unbound"; readonly repoId: string | null; readonly worktreeId: string | null; readonly causalSessionId: string | null; readonly checkoutEpochId: string | null; readonly lastActivityAt: string; } export declare const DEFAULT_DAEMON_SESSION_IDLE_TIMEOUT_MS: number; export declare function deriveRepoConcurrencySummary(input: RepoConcurrencyInput): RepoConcurrencySummary; export declare function mergeRepoConcurrencySummaryWithLiveSessions(input: { readonly currentSummary: RepoConcurrencySummary; readonly currentRepoId: string; readonly currentWorktreeId: string; readonly currentCheckoutEpochId: string | null; readonly sessions: readonly RepoConcurrencyLiveSession[]; readonly nowMs?: number; readonly sessionIdleTimeoutMs?: number; }): RepoConcurrencySummary; export declare function buildRepoConcurrencyContributorKey(input: { readonly actorId: string | null; readonly attribution: AttributionSummary; readonly causalSessionId: string | null; readonly transportSessionId: string | null; }): string | null; export declare function buildRepoConcurrencyTouches(events: readonly CausalEvent[]): RepoConcurrencyTouch[]; export {}; //# sourceMappingURL=repo-concurrency.d.ts.map