/**
 * Worker Store
 * Persistence layer for workers (memory, redis, db)
 */
import type { createRedisConnection } from '../../../../src/index.js';
import { type IDatabase } from '../../../../src/index.js';
type RedisConnection = ReturnType<typeof createRedisConnection>;
export type WorkerRecord = {
    name: string;
    queueName: string;
    version: string | null;
    status: string;
    autoStart: boolean;
    concurrency: number;
    region: string | null;
    processorSpec?: string | null;
    activeStatus?: boolean;
    features?: Record<string, unknown> | null;
    infrastructure?: Record<string, unknown> | null;
    datacenter?: Record<string, unknown> | null;
    createdAt: Date;
    updatedAt: Date;
    lastHealthCheck?: Date;
    lastError?: string;
    connectionState?: 'disconnected' | 'connecting' | 'connected' | 'error';
};
export type WorkerStore = {
    init(): Promise<void>;
    list(options?: {
        offset?: number;
        limit?: number;
        search?: string;
        includeInactive?: boolean;
    }): Promise<WorkerRecord[]>;
    get(name: string): Promise<WorkerRecord | null>;
    save(record: WorkerRecord): Promise<void>;
    update(name: string, patch: Partial<WorkerRecord>): Promise<void>;
    updateMany?: (names: string[], patch: Partial<WorkerRecord>) => Promise<void>;
    remove(name: string): Promise<void>;
    close?(): Promise<void>;
};
export declare const InMemoryWorkerStore: Readonly<{
    create(): WorkerStore;
}>;
export declare const RedisWorkerStore: Readonly<{
    create(client: RedisConnection, keyPrefix?: string): WorkerStore;
}>;
export declare const DbWorkerStore: Readonly<{
    create(db: IDatabase, table?: string): WorkerStore;
}>;
export {};
//# sourceMappingURL=WorkerStore.d.ts.map