import * as plugins from './plugins.js'; type TFlexMessage = plugins.flexharness.IFlexMessage; type TFlexSession = plugins.flexharness.IFlexSession; export declare const flexPublicSessionLimit = 2048; export declare const flexPublicMessageLimit = 2048; export declare const flexPublicMessageBytesLimit: number; export declare const flexPublicSingleMessageBytesLimit: number; export declare const flexPublicPageBytesLimit: number; export declare const flexPublicPageLimit = 50; export interface IFlexRecordManifest { id: string; sha256: string; bytes: number; } export interface IFlexPublicSourceRevision { incarnationId: string; revision: number; } export interface IFlexPublicProjectionSource extends IFlexPublicSourceRevision { sessionId: string; } export interface IFlexPublicCandidateManifest { candidateId: string; revision: number; sha256: string; bytes: number; sessionRecords: IFlexRecordManifest[]; messageRecords: IFlexRecordManifest[]; sessionsTruncated: boolean; messagesTruncated: boolean; messageBytesTruncated: boolean; visibleDigest: string; scopeSource: IFlexPublicSourceRevision; projectionSources: IFlexPublicProjectionSource[]; } export interface IFlexPublicCandidateDocument extends IFlexPublicCandidateManifest { id: string; controllerId: string; scopeId: string; createdAt: string; } export interface IFlexPublicHeadDocument { id: string; controllerId: string; storageKey: string; revision: number; currentPublicCandidateId: string; publicCandidates: IFlexPublicCandidateManifest[]; } export interface IFlexPublicSessionRecordDocument { id: string; controllerId: string; scopeId: string; candidateId: string; revision: number; session: TFlexSession; createdAt: string; } export interface IFlexPublicMessageRecordDocument { id: string; controllerId: string; scopeId: string; candidateId: string; revision: number; messageIndex: number; message: TFlexMessage; createdAt: string; } export interface IFlexProjectionMessageDescriptor { id: string; index: number; /** Absent only on projection sources created before source-order repair. */ messageIndex?: number; sha256: string; bytes: number; messageCreatedAt: string; sessionId: string; messageId: string; } export interface IFlexProjectionSourceManifest { candidateId: string; /** Absent only on persisted source chains created before source-order repair. */ orderVersion?: 1; sha256: string; bytes: number; messageCount: number; messagesTruncated: boolean; visibleDigest: string; latestMessage?: IFlexProjectionMessageDescriptor; } export interface IFlexProjectionSourceDocument extends IFlexProjectionSourceManifest { id: string; controllerId: string; scopeId: string; sessionId: string; incarnationId: string; revision: number; createdAt: string; } export interface IFlexProjectionMessageRecordDocument extends IFlexProjectionMessageDescriptor { controllerId: string; scopeId: string; candidateId: string; incarnationId: string; revision: number; message: TFlexMessage; previous?: IFlexProjectionMessageDescriptor; createdAt: string; } export declare const isFlexProjectionMessageDescriptor: (valueArg: unknown) => valueArg is IFlexProjectionMessageDescriptor; export declare const isFlexProjectionSourceManifest: (valueArg: unknown) => valueArg is IFlexProjectionSourceManifest; export declare const isFlexRecordManifest: (valueArg: unknown) => valueArg is IFlexRecordManifest; export declare const isFlexPublicCandidateManifest: (valueArg: unknown) => valueArg is IFlexPublicCandidateManifest; export declare function assertFlexPublicCandidateDocument(valueArg: unknown): asserts valueArg is IFlexPublicCandidateDocument; export declare function assertFlexPublicHeadDocument(valueArg: unknown): asserts valueArg is IFlexPublicHeadDocument; export declare function assertFlexPublicSessionRecordDocument(valueArg: unknown): asserts valueArg is IFlexPublicSessionRecordDocument; export declare function assertFlexPublicMessageRecordDocument(valueArg: unknown): asserts valueArg is IFlexPublicMessageRecordDocument; export declare function assertFlexProjectionSourceDocument(valueArg: unknown): asserts valueArg is IFlexProjectionSourceDocument; export declare function assertFlexProjectionMessageRecordDocument(valueArg: unknown): asserts valueArg is IFlexProjectionMessageRecordDocument; export declare class FlexPublicCandidateModel extends plugins.smartdata.SmartDataDbDoc { id: string; controllerId: string; scopeId: string; candidateId: string; revision: number; sha256: string; bytes: number; sessionRecords: IFlexRecordManifest[]; messageRecords: IFlexRecordManifest[]; sessionsTruncated: boolean; messagesTruncated: boolean; messageBytesTruncated: boolean; visibleDigest: string; scopeSource: IFlexPublicSourceRevision; projectionSources: IFlexPublicProjectionSource[]; createdAt: string; } export declare class FlexPublicHeadModel extends plugins.smartdata.SmartDataDbDoc { static exact: plugins.smartdata.TExact; id: string; controllerId: string; storageKey: string; revision: number; currentPublicCandidateId: string; publicCandidates: IFlexPublicCandidateManifest[]; } export declare class FlexPublicSessionRecordModel extends plugins.smartdata.SmartDataDbDoc { id: string; controllerId: string; scopeId: string; candidateId: string; revision: number; session: TFlexSession; createdAt: string; } export declare class FlexPublicMessageRecordModel extends plugins.smartdata.SmartDataDbDoc { id: string; controllerId: string; scopeId: string; candidateId: string; revision: number; messageIndex: number; message: TFlexMessage; createdAt: string; } export declare class FlexProjectionSourceModel extends plugins.smartdata.SmartDataDbDoc { id: string; controllerId: string; scopeId: string; sessionId: string; candidateId: string; incarnationId: string; revision: number; orderVersion?: 1; sha256: string; bytes: number; messageCount: number; messagesTruncated: boolean; visibleDigest: string; latestMessage?: IFlexProjectionMessageDescriptor; createdAt: string; } export declare class FlexProjectionMessageRecordModel extends plugins.smartdata.SmartDataDbDoc { id: string; controllerId: string; scopeId: string; candidateId: string; sessionId: string; incarnationId: string; revision: number; index: number; messageIndex?: number; sha256: string; bytes: number; messageCreatedAt: string; messageId: string; message: TFlexMessage; previous?: IFlexProjectionMessageDescriptor; createdAt: string; } export declare const flexHeadId: (controllerIdArg: string, scopeIdArg: string) => string; export declare const flexPublicHeadId: (controllerIdArg: string, scopeIdArg: string) => string; export declare const registerFlexPublicModels: (managerArg: { db: plugins.smartdata.SmartdataDb; }) => void; export declare const initFlexPublicModels: () => Promise; export {};