import { HASNA_EVENTS_DIR_ENV, HASNA_EVENTS_HOME_ENV } from "./app-home.js"; import type { ChannelConfig, DeliveryResult, EventAppendOptions, EventAppendResult, EventEnvelope, EventPage, EventPageOptions, EventsStatus, EventsStoreRuntime, StoredEventsData } from "./types.js"; export { HASNA_EVENTS_DIR_ENV, HASNA_EVENTS_HOME_ENV }; export declare const LOCAL_JSON_EVENT_CURSOR_PREFIX = "local-json-v1:"; export declare const DEFAULT_EVENT_PAGE_LIMIT = 100; export declare const MAX_EVENT_PAGE_LIMIT = 1000; export declare function getEventsDataDir(override?: string): string; export declare function getActiveEventsDirEnv(): EventsStatus["env"]["active"]; export interface EventsStore { dataDir: string; runtime?: EventsStoreRuntime; init(): Promise; addChannel(channel: ChannelConfig): Promise; listChannels(): Promise; getChannel(id: string): Promise; removeChannel(id: string): Promise; appendEvent(event: EventEnvelope): Promise; appendEventOnce?(event: EventEnvelope, options?: EventAppendOptions): Promise; listEvents(options?: EventPageOptions): Promise; listEventsPage?(options?: EventPageOptions): Promise; findEventByIdentity(identity: { id?: string; dedupeKey?: string; }): Promise; appendDelivery(result: DeliveryResult): Promise; listDeliveries(): Promise; } export declare class JsonEventsStore implements EventsStore { dataDir: string; runtime: EventsStoreRuntime; private channelsPath; private eventsPath; private deliveriesPath; constructor(dataDir?: string); init(): Promise; addChannel(channel: ChannelConfig): Promise; listChannels(): Promise; getChannel(id: string): Promise; removeChannel(id: string): Promise; appendEvent(event: EventEnvelope): Promise; appendEventOnce(event: EventEnvelope, options?: EventAppendOptions): Promise; listEvents(options?: EventPageOptions): Promise; listEventsPage(options?: EventPageOptions): Promise; findEventByIdentity(identity: { id?: string; dedupeKey?: string; }): Promise; appendDelivery(result: DeliveryResult): Promise; listDeliveries(): Promise; exportData(): Promise; private ensureArrayFile; private readJson; private writeJson; } export declare function localJsonRuntime(dataDir?: string): EventsStoreRuntime; export declare function encodeLocalJsonEventCursor(offset: number, options?: EventPageOptions): string; export declare function decodeLocalJsonEventCursor(cursor: string | undefined, options?: EventPageOptions): number; export declare function normalizeEventPageLimit(limit: number | undefined): number; export declare function getEventsStatus(dataDir?: string): Promise;