import type { GovernanceServiceCredential } from './capability-grant.js'; import { GovernanceCredentialLeaseController, type GovernanceCredentialLeaseSnapshot } from './credential-lease-controller.js'; import type { GovernanceProjectDaemonLaunch } from './daemon-launcher.js'; import type { GovernanceDaemonMetadata } from './daemon-metadata.js'; import { type GovernanceProjectClientOptions } from './project-client.js'; import type { GovernanceServiceResponse } from './project-service.js'; export interface GovernanceAdminSessionLeaseOptions extends GovernanceProjectClientOptions { readonly rotationTtlMs?: number | undefined; readonly renewBeforeMs?: number | undefined; readonly retryDelayMs?: number | undefined; readonly maxAttempts?: number | undefined; readonly startLease?: boolean | undefined; } export interface ConnectGovernanceAdminSessionOptions extends GovernanceAdminSessionLeaseOptions { readonly projectRoot: string; readonly projectId: string; readonly grantId: string; readonly credential: GovernanceServiceCredential; } type GovernanceAdminSessionConnectionFailureCode = 'not_running' | 'endpoint_invalid' | 'project_mismatch' | 'credential_mismatch' | 'authentication_failed' | 'service_rejected' | 'admin_required' | 'grant_mismatch'; export type ConnectGovernanceAdminSessionResult = { readonly connected: true; readonly session: GovernanceAdminSession; } | { readonly connected: false; readonly code: GovernanceAdminSessionConnectionFailureCode; readonly message: string; }; export interface GovernanceAdminSessionSnapshot { readonly mode: 'attached' | 'launched'; readonly daemon: { readonly projectRoot: string; readonly projectId: string; readonly pid: number; readonly instanceId: string; readonly startedAt: string; }; readonly lease: GovernanceCredentialLeaseSnapshot; } declare const GOVERNANCE_ADMIN_SESSION_CONSTRUCTION: unique symbol; export declare class GovernanceAdminSession { readonly mode: 'attached' | 'launched'; private readonly metadata; private readonly lease; constructor(construction: typeof GOVERNANCE_ADMIN_SESSION_CONSTRUCTION, mode: 'attached' | 'launched', metadata: GovernanceDaemonMetadata, lease: GovernanceCredentialLeaseController); request(input: unknown): Promise; readDaemonStatus(): Promise; shutdownDaemon(reason?: string): Promise; rotateNow(): Promise; stop(): GovernanceAdminSessionSnapshot; snapshot(): GovernanceAdminSessionSnapshot; } export declare function connectGovernanceAdminSession(options: ConnectGovernanceAdminSessionOptions): Promise; export declare function connectGovernanceAdminSessionFromLaunch(launch: GovernanceProjectDaemonLaunch, options?: GovernanceAdminSessionLeaseOptions): Promise; export {}; //# sourceMappingURL=admin-session.d.ts.map