import * as plugins from './plugins.js'; import type { TControllerSessionId } from '../dist_ts_interfaces/index.js'; export type TControllerSessionLocatorState = 'initializing' | 'binding' | 'attached' | 'detaching' | 'detached' | 'deleting' | 'completing' | 'tombstoned'; export interface IControllerSessionPendingBinding { bindingId: string; supervisorGeneration: string; attachedAt: Date; } export interface IControllerSessionBindingReference { bindingId: string; detachedAt: Date; } export interface IControllerSessionDeletionRecord { operationId: string; startedAt: Date; priorState: 'attached' | 'detached'; finalBindingId: string; priorDetachedAt?: Date; completedAt?: Date; } export interface IControllerSessionIdentityDocument { id: string; issuerId: string; sessionIdentityId: string; projectIdentityId: string; createdAt: Date; retiredAt?: Date; } export interface IControllerSessionRuntimeBindingDocument { id: string; bindingId: string; issuerId: string; sessionIdentityId: string; projectIdentityId: string; runtimeId: TControllerSessionId; supervisorGeneration: string; providerSessionGeneration?: string; attachedAt: Date; detachedAt?: Date; } export interface IControllerSessionLocatorDocument { id: string; issuerId: string; sessionIdentityId: string; projectIdentityId: string; runtimeId: TControllerSessionId; providerSessionGeneration?: string; identityCreatedAt: Date; state: TControllerSessionLocatorState; updatedAt: Date; pendingBinding?: IControllerSessionPendingBinding; activeBindingId?: string; bindingCleanup?: IControllerSessionBindingReference; detachedBinding?: IControllerSessionBindingReference; deletion?: IControllerSessionDeletionRecord; } export declare const controllerSessionIdentityDocumentId: (issuerIdArg: string, sessionIdentityIdArg: string) => string; export declare const controllerSessionLocatorDocumentId: (issuerIdArg: string, projectIdentityIdArg: string, runtimeIdArg: TControllerSessionId) => string; export declare const assertControllerSessionIdentityDocument: (valueArg: unknown) => asserts valueArg is IControllerSessionIdentityDocument; export declare const assertControllerSessionRuntimeBindingDocument: (valueArg: unknown) => asserts valueArg is IControllerSessionRuntimeBindingDocument; export declare const assertControllerSessionLocatorDocument: (valueArg: unknown) => asserts valueArg is IControllerSessionLocatorDocument; export declare class ControllerSessionIdentityModel extends plugins.smartdata.SmartDataDbDoc { static exact: plugins.smartdata.TExact; id: string; issuerId: string; sessionIdentityId: string; projectIdentityId: string; createdAt: Date; retiredAt?: Date; } export declare class ControllerSessionRuntimeBindingModel extends plugins.smartdata.SmartDataDbDoc { static exact: plugins.smartdata.TExact; id: string; bindingId: string; issuerId: string; sessionIdentityId: string; projectIdentityId: string; runtimeId: TControllerSessionId; supervisorGeneration: string; providerSessionGeneration?: string; attachedAt: Date; detachedAt?: Date; } export declare class ControllerSessionLocatorModel extends plugins.smartdata.SmartDataDbDoc { static exact: plugins.smartdata.TExact; id: string; issuerId: string; sessionIdentityId: string; projectIdentityId: string; runtimeId: TControllerSessionId; providerSessionGeneration?: string; identityCreatedAt: Date; state: TControllerSessionLocatorState; updatedAt: Date; pendingBinding?: IControllerSessionPendingBinding; activeBindingId?: string; bindingCleanup?: IControllerSessionBindingReference; detachedBinding?: IControllerSessionBindingReference; deletion?: IControllerSessionDeletionRecord; }