import type { GovernanceServiceCredential } from './capability-grant.js'; import { GOVERNANCE_SERVICE_PROTOCOL_VERSION } from './service-protocol.js'; declare const GOVERNANCE_DAEMON_METADATA_SCHEMA_VERSION: 1; declare const GOVERNANCE_DAEMON_STARTUP_LEASE_SCHEMA_VERSION: 1; declare const GOVERNANCE_DAEMON_ATTACHMENT_BROKER_SCHEMA_VERSION: 1; export declare const GOVERNANCE_DAEMON_ATTACHMENT_BROKER_TTL_MS: number; export interface GovernanceDaemonMetadata { readonly schemaVersion: typeof GOVERNANCE_DAEMON_METADATA_SCHEMA_VERSION; readonly protocolVersion: typeof GOVERNANCE_SERVICE_PROTOCOL_VERSION; readonly projectKey: string; readonly projectRoot: string; readonly projectId: string; readonly endpoint: string; readonly pid: number; readonly instanceId: string; readonly startedAt: string; } interface GovernanceDaemonStartupLeaseRecord { readonly schemaVersion: typeof GOVERNANCE_DAEMON_STARTUP_LEASE_SCHEMA_VERSION; readonly projectKey: string; readonly pid: number; readonly instanceId: string; readonly startedAt: string; } export interface GovernanceDaemonAttachmentBrokerRecord { readonly schemaVersion: typeof GOVERNANCE_DAEMON_ATTACHMENT_BROKER_SCHEMA_VERSION; readonly protocolVersion: typeof GOVERNANCE_SERVICE_PROTOCOL_VERSION; readonly projectKey: string; readonly projectRoot: string; readonly projectId: string; readonly pid: number; readonly instanceId: string; readonly grantId: string; readonly expiresAt: string; readonly credential: GovernanceServiceCredential; } type GovernanceDaemonAttachmentBrokerReadResult = { readonly kind: 'missing'; } | { readonly kind: 'invalid'; readonly reason: string; } | { readonly kind: 'valid'; readonly broker: GovernanceDaemonAttachmentBrokerRecord; }; type GovernanceDaemonMetadataReadResult = { readonly kind: 'missing'; } | { readonly kind: 'invalid'; readonly reason: string; } | { readonly kind: 'valid'; readonly metadata: GovernanceDaemonMetadata; }; type GovernanceDaemonInspection = { readonly kind: 'live'; readonly metadata: GovernanceDaemonMetadata; } | { readonly kind: 'stale'; readonly metadata: GovernanceDaemonMetadata | null; readonly metadataState: 'missing' | 'invalid' | 'dead-owner'; } | { readonly kind: 'endpoint_invalid'; readonly metadata: GovernanceDaemonMetadata | null; readonly reason: string; }; type GovernanceDaemonStartupLeaseErrorCode = 'busy' | 'invalid_lease'; export declare class GovernanceDaemonStartupLeaseError extends Error { readonly code: GovernanceDaemonStartupLeaseErrorCode; constructor(code: GovernanceDaemonStartupLeaseErrorCode, message: string); } interface AcquireGovernanceDaemonStartupLeaseOptions { readonly projectRoot: string; readonly pid: number; readonly instanceId: string; readonly startedAt: string; readonly timeoutMs?: number | undefined; readonly retryMs?: number | undefined; readonly now?: (() => number) | undefined; readonly isProcessAlive?: ((pid: number) => boolean) | undefined; } export declare function governanceDaemonMetadataPath(projectRoot: string): string; export declare function governanceDaemonStartupLeasePath(projectRoot: string): string; export declare function governanceDaemonAttachmentBrokerPath(projectRoot: string): string; export declare function createGovernanceDaemonAttachmentBroker(options: { readonly metadata: GovernanceDaemonMetadata; readonly grantId: string; readonly expiresAt: string; readonly credential: GovernanceServiceCredential; }): GovernanceDaemonAttachmentBrokerRecord; export declare function writeGovernanceDaemonAttachmentBroker(projectRoot: string, broker: GovernanceDaemonAttachmentBrokerRecord): Promise; export declare function readGovernanceDaemonAttachmentBroker(projectRoot: string): Promise; export declare function removeOwnedGovernanceDaemonAttachmentBroker(projectRoot: string, owner: Pick): Promise; export declare function createGovernanceDaemonMetadata(options: { readonly projectRoot: string; readonly projectId: string; readonly pid: number; readonly instanceId: string; readonly startedAt: string; }): GovernanceDaemonMetadata; export declare function writeGovernanceDaemonMetadata(projectRoot: string, metadata: GovernanceDaemonMetadata): Promise; export declare function readGovernanceDaemonMetadata(projectRoot: string): Promise; export declare function removeOwnedGovernanceDaemonMetadata(projectRoot: string, owner: Pick): Promise; export declare function inspectGovernanceDaemon(projectRoot: string): Promise; export declare function shouldRecoverGovernanceEndpoint(platform: NodeJS.Platform, inspection: GovernanceDaemonInspection): boolean; export declare class GovernanceDaemonStartupLease { readonly projectRoot: string; private readonly raw; readonly path: string; readonly record: GovernanceDaemonStartupLeaseRecord; private released; constructor(projectRoot: string, pathname: string, record: GovernanceDaemonStartupLeaseRecord, raw: string); release(): Promise; } export declare function acquireGovernanceDaemonStartupLease(options: AcquireGovernanceDaemonStartupLeaseOptions): Promise; export {}; //# sourceMappingURL=daemon-metadata.d.ts.map