import { type WorkspaceAccessScope, type WorkspaceContext } from "../core/workspace-context.js"; import { WorkspaceRegistry, type SafeWorkspaceMetadata } from "./registry.js"; export interface WorkspaceBindingStatus { binding: string; workspace: SafeWorkspaceMetadata; scope: WorkspaceAccessScope; expiresAt: string; } export declare class WorkspaceBindingError extends Error { readonly code: "missing" | "malformed" | "expired" | "revoked" | "principal" | "scope" | "unavailable"; constructor(message: string, code: "missing" | "malformed" | "expired" | "revoked" | "principal" | "scope" | "unavailable"); } export declare class WorkspaceBindingManager { readonly registry: WorkspaceRegistry; readonly ttlMs: number; readonly maximumLifetimeMs: number; private readonly now; private readonly onWorkspaceInactive?; private readonly records; constructor(registry: WorkspaceRegistry, ttlMs?: number, maximumLifetimeMs?: number, now?: () => number, onWorkspaceInactive?: ((workspaceId: string) => void | Promise) | undefined); private notifyIfInactive; private key; private safeMetadata; issue(workspaceId: string, scope: WorkspaceAccessScope, principalId: string): Promise; private recordFor; resolve(token: string, principalId: string, requireWrite?: boolean): Promise; status(token: string, principalId: string): Promise; renew(token: string, principalId: string): Promise; release(token: string, principalId: string): boolean; revokeAll(): void; activeBindingCount(): number; activeWorkspaceCount(): number; } //# sourceMappingURL=bindings.d.ts.map