import type { ExecutionDump, ExecutionTask, GroupedActionDump, InsightDump } from '@midscene/core';
import * as Z from 'zustand';
import type { AnimationScript } from './replay-scripts';
export declare const useBlackboardPreference: Z.UseBoundStore<Z.StoreApi<{
    markerVisible: boolean;
    elementsVisible: boolean;
    setMarkerVisible: (visible: boolean) => void;
    setTextsVisible: (visible: boolean) => void;
}>>;
export interface HistoryItem {
    type: 'aiAction' | 'aiQuery' | 'aiAssert';
    prompt: string;
    timestamp: number;
}
export declare const useChromeTabInfo: Z.UseBoundStore<Z.StoreApi<{
    tabId: number | null;
    windowId: number | null;
}>>;
/**
/**
 * Service Mode
 *
 * - Server: use a node server to run the code
 * - In-Browser: use browser's fetch API to run the code
 * - In-Browser-Extension: use browser's fetch API to run the code, but the page is running in the extension context
 */
export type ServiceModeType = 'Server' | 'In-Browser' | 'In-Browser-Extension';
export declare const useEnvConfig: Z.UseBoundStore<Z.StoreApi<{
    serviceMode: ServiceModeType;
    setServiceMode: (serviceMode: ServiceModeType) => void;
    config: Record<string, string>;
    configString: string;
    setConfig: (config: Record<string, string>) => void;
    loadConfig: (configString: string) => void;
    history: HistoryItem[];
    clearHistory: () => void;
    addHistory: (history: HistoryItem) => void;
}>>;
export declare const useExecutionDump: Z.UseBoundStore<Z.StoreApi<{
    dump: GroupedActionDump | null;
    setGroupedDump: (dump: GroupedActionDump) => void;
    _executionDumpLoadId: number;
    startReplay: boolean;
    setStartReplay: (startReplay: boolean) => void;
    replayAllMode: boolean;
    setReplayAllMode: (replayAllMode: boolean) => void;
    allExecutionAnimation: AnimationScript[] | null;
    sdkVersion: string | null;
    modelName: string | null;
    insightWidth: number | null;
    insightHeight: number | null;
    activeExecution: ExecutionDump | null;
    activeExecutionAnimation: AnimationScript[] | null;
    activeTask: ExecutionTask | null;
    setActiveTask: (task: ExecutionTask) => void;
    insightDump: InsightDump | null;
    _insightDumpLoadId: number;
    hoverTask: ExecutionTask | null;
    hoverTimestamp: number | null;
    setHoverTask: (task: ExecutionTask | null, timestamp?: number | null) => void;
    hoverPreviewConfig: {
        x: number;
        y: number;
    } | null;
    setHoverPreviewConfig: (config: {
        x: number;
        y: number;
    } | null) => void;
    reset: () => void;
    onActiveTaskChange: ((taskIndex: number, task: ExecutionTask) => void) | null;
    setOnActiveTaskChange: (callback?: ((taskIndex: number, task: ExecutionTask) => void) | undefined) => void;
}>>;
export declare const useAllCurrentTasks: () => ExecutionTask[];
