import type { TeamServicePort } from './services/team-service.js'; import type { ArkmeUserProfileSnapshot } from './types.js'; import type { TeamCodexEntryAvailability, TeamCodexEventPage, TeamCodexInvitation, TeamCodexState } from './team-codex-contract.js'; import { type TeamCodexCloudPort } from './team-codex-cloud.js'; interface Options { directory: string; currentUserId(): Promise; profile(): Promise; teams: Pick; now?: () => number; /** Optional explicit local configuration root; defaults to this host's Codex home. */ codexHome?: string; cloud?: TeamCodexCloudPort; } /** Account-scoped local collection, with optional bound-team cloud replication. */ export declare class TeamCodexService { private readonly options; private readonly db; private readonly machine; private readonly titles; private readonly captureHealth; private readonly timings; private readonly images; private readonly liveUpdates; private readonly inboxWatchers; private wakeTimer; private nativeSignatures; private nextNativeCheck; private readonly cloud; private cloudPumping; private nextCloudPump; private nextImageCapture; private readonly now; private readonly identities; private readonly memberFilters; private readonly entryChecks; private readonly entryRequests; private generation; private closed; private ticking; private timer; constructor(options: Options); start(): () => void; /** Called synchronously when the account scope closes, before another account can read. */ fence(preserveCaptureLease?: boolean): void; close(): void; private user; /** Never use invitations, upload consent, a team's existence or a colleague's tasks as activation. */ entryAvailability(expectedUserId: number): Promise; private rememberEntry; private hasEntryEvidence; private self; private control; private binding; state(teamRef: string, page?: number, memberRef?: string, sourceId?: string, projectKey?: string): Promise; private resolveDirectoryMember; private localState; private task; invite(teamRef: string): Promise; private invitation; change(teamRef: string, id: string, action: string, projectKey?: string, sourceName?: string): Promise; events(teamRef: string, id: string, before?: number, sourceId?: string, cursor?: string): Promise; /** Private media is a separate owner-checked read, never an arbitrary path/URL fetch. */ image(teamRef: string, id: string, turnId: string, kind: string, ref: string, full?: boolean, sourceId?: string): Promise<{ dataUrl: string; }>; tick(): Promise; /** Hook writes wake collection immediately; the original one-second timer stays as fallback. */ private requestTick; private watchInboxes; private scheduleNativeUpdates; private pumpCloud; private ingest; private captureLegacyTitles; } export {}; //# sourceMappingURL=team-codex-service.d.ts.map