import * as plugins from './plugins.js'; import type { IFlexDatabaseDescriptor, IFlexPublicProviderConnection } from './interfaces.flexipc.js'; type TFlexMessage = plugins.flexharness.IFlexMessage; type TFlexSession = plugins.flexharness.IFlexSession; export interface IFlexProjectionReaderOptions { database: IFlexDatabaseDescriptor; controllerId: string; } export interface IFlexProjectionPageOptions { limit?: number; cursor?: string; } export interface IFlexProjectedSessionPage { candidateId: string; revision: number; sessions: TFlexSession[]; nextCursor?: string; truncated: boolean; } export interface IFlexProjectedMessagePage { candidateId: string; revision: number; messages: IFlexProjectedMessage[]; nextCursor?: string; truncated: boolean; } export interface IFlexProjectedMessage { messageIndex: number; message: TFlexMessage; } export interface IFlexProjectedSessionSnapshot { candidateId: string; revision: number; sessions: TFlexSession[]; truncated: boolean; } export interface IFlexProjectedMessageSnapshot { candidateId: string; revision: number; messages: IFlexProjectedMessage[]; truncated: boolean; } export declare class FlexProjectionCursorError extends Error { readonly code = "FLEX_PROJECTION_CURSOR_INVALID"; constructor(); } export declare class FlexProjectionStaleCursorError extends Error { readonly code = "FLEX_PROJECTION_CURSOR_STALE"; constructor(); } export declare class FlexProjectionNotFoundError extends Error { readonly code = "FLEX_PROJECTION_NOT_FOUND"; constructor(); } export declare class FlexProjectionFormatError extends Error { readonly code = "FLEX_PROJECTION_FORMAT_INVALID"; constructor(); } export declare class FlexProjectionReader { private readonly database; private readonly controllerId; private readonly manager; private initialized; private databaseOpened; private initPromise?; private closePromise?; private closed; constructor(optionsArg: IFlexProjectionReaderOptions); init(): Promise; close(): Promise; listSessionPage(scopeIdArg: string, optionsArg?: IFlexProjectionPageOptions, signalArg?: AbortSignal): Promise; listAllSessions(scopeIdArg: string, signalArg?: AbortSignal): Promise; getSession(scopeIdArg: string, sessionIdArg: string, signalArg?: AbortSignal): Promise; listMessagePage(scopeIdArg: string, sessionIdArg: string, optionsArg?: IFlexProjectionPageOptions, signalArg?: AbortSignal): Promise; listAllSessionMessages(scopeIdArg: string, sessionIdArg: string, signalArg?: AbortSignal): Promise; getMessage(scopeIdArg: string, sessionIdArg: string, messageIdArg: string, signalArg?: AbortSignal): Promise; listProviderConnections(signalArg?: AbortSignal): Promise; private selectCandidate; private loadHead; private loadCandidate; private loadSessionRecords; private loadMessageRecords; private createSessionPage; private createMessagePage; private encodeCursor; private parseCursor; private findAnchorIndex; } export {};