import type { IContainer } from 'node-cqrs'; import type { IEvent, IEventLocker, ILogger, IViewLocker } from '../interfaces/index.ts'; import { SqliteViewLocker, type SqliteViewLockerParams } from './SqliteViewLocker.ts'; import { SqliteEventLocker, type SqliteEventLockerParams } from './SqliteEventLocker.ts'; import { AbstractSqliteAccessor } from './AbstractSqliteAccessor.ts'; /** * Base class for SQLite-backed projection views with restore locking and last-processed-event tracking */ export declare abstract class AbstractSqliteView extends AbstractSqliteAccessor implements IViewLocker, IEventLocker { protected readonly schemaVersion: string; protected readonly viewLocker: SqliteViewLocker; protected readonly eventLocker: SqliteEventLocker; protected logger: ILogger | undefined; get ready(): boolean; constructor(options: Partial> & SqliteEventLockerParams & SqliteViewLockerParams); lock(): Promise; unlock(): void; once(event: 'ready'): Promise; getLastEvent(): Promise | undefined>; tryMarkAsProjecting(event: IEvent): Promise; markAsProjected(event: IEvent): Promise; markAsLastEvent(event: IEvent): Promise; }