export interface QueuedSignal {
    id: string;
    type: string;
    data: Record<string, unknown>;
    timestamp: string;
    retryCount: number;
}
export interface EngineStatus {
    state: 'ONLINE' | 'DEGRADED' | 'OFFLINE';
    lastHeartbeat: string;
    consecutiveFailures: number;
}
export declare class OfflineQueue {
    private queuePath;
    private statusPath;
    private maxRetries;
    private timeoutMs;
    private lastFlush;
    constructor(cellDir: string);
    enqueue(type: string, data: Record<string, unknown>): QueuedSignal;
    dequeue(): QueuedSignal | null;
    peek(): QueuedSignal | null;
    getQueueSize(): number;
    getPendingCount(): number;
    getLastFlush(): string | null;
    syncOnReconnect(sendFn?: (signal: QueuedSignal) => Promise<boolean>): Promise<{
        synced: number;
        failed: number;
    }>;
    checkEngineHealth(): EngineStatus;
    heartbeat(): void;
    getDegradedMessage(status: EngineStatus): string;
    clearQueue(): void;
    private loadQueue;
    private saveQueue;
    private loadStatus;
    private saveStatus;
    private ensureDirectory;
}
//# sourceMappingURL=offline-queue.d.ts.map