import { FlowMetadata } from '../models/FlowMetadata';
import { ToolCall } from '../models/ToolCall';
import { VideoSegment } from '../models/VideoSegment';
import { FlowsPersistence, PaginatedFlowsResult } from './FlowsPersistence';
import { SupabaseClient } from '../clients/SupabaseClient';
import { BrowserStorageState } from '../models/BrowserStorageState';
import { FlowsQuery } from '../models/FlowsQuery';
/**
 * A persistence implementation that uses Supabase for storage via
 * its PostgREST endpoints. This implementation assumes that row-Level Security (RLS) is enabled and
 * enforced by Supabase.
 */
export declare class FlowsPersistenceSupabase implements FlowsPersistence {
    private readonly supabaseHttpClient;
    private static readonly FLOW_METADATA_TABLE;
    private static readonly BROWSER_STATE_FILENAME;
    private static readonly TOOL_CALLS_TABLE;
    private static readonly FLOW_FILES_TABLE;
    constructor(supabaseHttpClient: SupabaseClient);
    saveMetadata(flowMetadata: FlowMetadata): Promise<void>;
    getMetadataByFlowId(flowId: string): Promise<FlowMetadata>;
    /**
     * Get flow metadata by name using the indexed name column
     */
    getMetadataByFlowName(flowName: string): Promise<FlowMetadata>;
    savePngScreenShot(flowId: string, bytes: Buffer): Promise<string>;
    getPngScreenShot(flowId: string, screenShotId: string): Promise<Buffer | null>;
    saveToolCall(flowId: string, toolCall: ToolCall): Promise<void>;
    getToolCalls(flowId: string): Promise<ToolCall[]>;
    getFlows(query: FlowsQuery): Promise<PaginatedFlowsResult>;
    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=FlowsPersistenceSupabase.d.ts.map