import * as plugins from '../dist_ts/plugins.js'; import { ControllerSessionIdentityService, type IControllerSessionSnapshotEntry } from '../dist_ts/classes.sessionidentityservice.js'; import { type TControllerSessionId } from '../dist_ts_interfaces/index.js'; export declare const controllerLegacyManagedSessionMigrationCohortLimit = 500; export type TControllerLegacyManagedSessionMigrationState = 'admitting' | 'completed'; export type TControllerLegacyManagedSessionMigrationOutcome = 'pending' | 'admitted' | 'excluded'; export interface IControllerLegacyManagedSessionMigrationManifestEntry { stateDocumentId: string; runtimeId: TControllerSessionId; providerSessionGeneration: string; sessionGenerationId?: string; sessionGenerationSequence?: number; outcome: TControllerLegacyManagedSessionMigrationOutcome; } export interface IControllerLegacyManagedSessionMigrationDocument { id: string; controllerId: string; issuerId: string; projectId: string; harnessId: TControllerSessionId['harnessId']; state: TControllerLegacyManagedSessionMigrationState; cohortObservedAt: Date; manifest: IControllerLegacyManagedSessionMigrationManifestEntry[]; updateId: string; completedAt?: Date; } export interface IControllerLegacyManagedSessionMigrationInput { controllerId: string; issuerId: string; projectId: string; harnessId: TControllerSessionId['harnessId']; supervisorGeneration: string; sourceAdmissionFenced: true; snapshotComplete: true; sessions: readonly IControllerSessionSnapshotEntry[]; creationObligationsComplete: true; creationObligationRuntimeIds: readonly TControllerSessionId[]; observedAt: Date; signal: AbortSignal; assertRuntimeAuthorityBeforeCompletion: () => void | Promise; assertRuntimeAuthorityAfterCompletion: () => void | Promise; } export interface IControllerLegacyManagedSessionMigrationResult { status: 'completed'; markerId: string; cohortSize: number; admittedCount: number; excludedCount: number; } export interface IControllerLegacyManagedSessionV26MigrationOptions { issuerId: string; sessionIdentityService: ControllerSessionIdentityService; } export declare const controllerLegacyManagedSessionMigrationDocumentId: (controllerIdArg: string, issuerIdArg: string, projectIdArg: string, harnessIdArg: TControllerSessionId["harnessId"]) => string; export declare const assertControllerLegacyManagedSessionMigrationDocument: (valueArg: unknown) => asserts valueArg is IControllerLegacyManagedSessionMigrationDocument; export declare class ControllerLegacyManagedSessionMigrationModel extends plugins.smartdata.SmartDataDbDoc { static exact: plugins.smartdata.TExact; id: string; controllerId: string; issuerId: string; projectId: string; harnessId: TControllerSessionId['harnessId']; state: TControllerLegacyManagedSessionMigrationState; cohortObservedAt: Date; manifest: IControllerLegacyManagedSessionMigrationManifestEntry[]; updateId: string; completedAt?: Date; } export declare class ControllerLegacyManagedSessionV26Migration { private readonly issuerId; private readonly sessionIdentityService; constructor(optionsArg: IControllerLegacyManagedSessionV26MigrationOptions); private resolveScope; private validateInput; private assertMarkerScope; private readMarker; private assertRuntimeAuthorityBeforeCompletion; private buildManifest; private insertMarker; private transitionMarker; private transitionOutcome; private readUnretiredRuntimeMembership; private assertMembershipGeneration; private assertStableManagedMembership; private admitAndVerify; private resolvePendingOutcome; private resultFromMarker; run(inputArg: IControllerLegacyManagedSessionMigrationInput): Promise; }