import type { AiQuery } from '../../models/AiQuery';
import type { BrowserStorageState } from '../../models/BrowserStorageState';
import type { FlowMetadata, FlowsQuery } from '../../models/FlowMetadata';
import type { PaginatedResult } from '../../models/PaginatedResult';
import type { ToolCall } from '../../models/ToolCall';
import type { VideoSegment } from '../../models/VideoSegment';
import type { FlowsPersistence } from './FlowsPersistence';
/**
 * A volatile (in-memory) implementation of FlowsPersistence.
 */
export declare class FlowsPersistenceVolatile implements FlowsPersistence {
    private readonly flows;
    private readonly screenshots;
    private readonly toolCalls;
    private readonly videos;
    private readonly files;
    private readonly browserStates;
    private readonly aiQueries;
    constructor(flows?: Map<string, FlowMetadata>, screenshots?: Map<string, Map<string, Buffer>>, toolCalls?: Map<string, ToolCall[]>, videos?: Map<string, Buffer>, files?: Map<string, Map<string, Buffer>>, browserStates?: Map<string, BrowserStorageState>, aiQueries?: Map<string, AiQuery[]>);
    setFlowMetadata(flowMetadata: FlowMetadata): Promise<void>;
    getFlowMetadataById(flowId: string): Promise<FlowMetadata>;
    getFlowMetadataByName(flowName: string): Promise<FlowMetadata>;
    /**
     * Get flows with pagination and filtering from in-memory storage.
     */
    getFlowsMetadata(query: FlowsQuery): Promise<PaginatedResult<FlowMetadata>>;
    saveScreenShot(flowId: string, bytes: Buffer): Promise<string>;
    getScreenShot(flowId: string, screenShotId: string): Promise<Buffer | null>;
    setToolCall(flowId: string, toolCall: ToolCall): Promise<void>;
    getToolCalls(flowId: string): Promise<ToolCall[]>;
    deleteToolCall(flowId: string, toolCallId: string): Promise<void>;
    setAiQuery(flowId: string, aiQuery: AiQuery): Promise<void>;
    getAiQueries(flowId: string): Promise<AiQuery[]>;
    setVideo(flowId: string, bytes: Buffer): Promise<void>;
    getVideoSegment(flowId: string, startOffset: number, length: number): Promise<VideoSegment | null>;
    getFlowFile(flowId: string, fileId: string): Promise<Buffer | null>;
    setFlowFile(flowId: string, fileId: string, fileBytes: Buffer): Promise<void>;
    setBrowserState(flowId: string, browserState: BrowserStorageState): Promise<void>;
    getBrowserState(flowId: string): Promise<BrowserStorageState | null>;
    deleteFlow(flowId: string): Promise<void>;
}
//# sourceMappingURL=FlowsPersistenceVolatile.d.ts.map