import { LockContext } from '../../db/DBAdapter.js'; import { Schema } from '../../db/schema/Schema.js'; import type { AbstractPowerSyncDatabase } from '../AbstractPowerSyncDatabase.js'; import { CreateDiffTriggerOptions, DiffTriggerOperation, TrackDiffOptions, TriggerManager, TriggerManagerConfig, TriggerRemoveCallback, TriggerRemoveCallbackOptions } from './TriggerManager.js'; export type TriggerManagerImplOptions = TriggerManagerConfig & { db: AbstractPowerSyncDatabase; schema: Schema; }; export type TriggerManagerImplConfiguration = { useStorageByDefault: boolean; }; export declare const DEFAULT_TRIGGER_MANAGER_CONFIGURATION: TriggerManagerImplConfiguration; /** * @internal * @experimental */ export declare class TriggerManagerImpl implements TriggerManager { protected options: TriggerManagerImplOptions; protected schema: Schema; protected defaultConfig: TriggerManagerImplConfiguration; protected cleanupTimeout: ReturnType | null; protected isDisposed: boolean; constructor(options: TriggerManagerImplOptions); protected get db(): AbstractPowerSyncDatabase; protected getUUID(): Promise; protected removeTriggers(tx: LockContext, triggerIds: string[]): Promise; dispose(): void; /** * Updates default config settings for platform specific use-cases. */ updateDefaults(config: TriggerManagerImplConfiguration): void; protected generateTriggerName(operation: DiffTriggerOperation, destinationTable: string, triggerId: string): string; /** * Cleanup any SQLite triggers or tables that are no longer in use. */ cleanupResources(): Promise; createDiffTrigger(options: CreateDiffTriggerOptions): Promise<(options?: TriggerRemoveCallbackOptions) => Promise>; trackTableDiff(options: TrackDiffOptions): Promise; }