import React from 'react'; import type { WorkflowRun } from '#services/workflow_runs.js'; export type Tab = 'workflows' | 'runs' | 'services' | 'help'; export declare const TAB_ORDER: Tab[]; export declare const TAB_LABELS: Record; export type RunListPaneTab = 'status' | 'input' | 'output'; export type RunStepPaneTab = 'input' | 'output' | 'meta'; export type RunsView = 'list' | 'detail'; export interface Selection { workflowName?: string; runId?: string; workflowId?: string; serviceName?: string; } export interface SearchState { open: boolean; query: string; } export interface RunModalState { open: boolean; workflowName: string; workflowPath?: string; } export interface ExpandedJsonState { open: boolean; value: unknown; title: string; } export interface StepGraphState { open: boolean; run: WorkflowRun | null; } export interface Toast { id: number; message: string; tone: 'info' | 'success' | 'error'; } export declare const MAX_VISIBLE_TOASTS = 3; export interface UiState { tab: Tab; search: SearchState; selection: Selection; runListPaneTab: RunListPaneTab; runStepPaneTab: RunStepPaneTab; runsView: RunsView; runModal: RunModalState; expandedJson: ExpandedJsonState; stepGraph: StepGraphState; toasts: Toast[]; setTab: (tab: Tab) => void; nextTab: () => void; prevTab: () => void; openSearch: () => void; closeSearch: () => void; clearSearch: () => void; setSearchQuery: (query: string) => void; setSelection: (selection: Selection) => void; setRunListPaneTab: (tab: RunListPaneTab) => void; setRunStepPaneTab: (tab: RunStepPaneTab) => void; setRunsView: (view: RunsView) => void; openRunModal: (workflowName: string, workflowPath?: string) => void; closeRunModal: () => void; openExpandedJson: (value: unknown, title: string) => void; closeExpandedJson: () => void; openStepGraph: (run: WorkflowRun) => void; closeStepGraph: () => void; pushToast: (message: string, tone?: Toast['tone']) => void; dismissToast: (id: number) => void; } export declare const UiStateProvider: React.FC<{ children: React.ReactNode; }>; export declare const useUiState: () => UiState;