/**
 * Runtime store — Zustand vanilla store for the GoodVibes platform runtime.
 *
 * Uses `createStore` from `zustand/vanilla` (NOT the React `create` hook)
 * because this runtime uses Zustand directly with no React renderer.
 */
import type { StoreApi } from 'zustand';
import type { TurnEvent } from '../../../events/turn.js';
import type { ToolEvent } from '../../../events/tools.js';
import type { PermissionEvent } from '../../../events/permissions.js';
import type { TaskEvent } from '../../../events/tasks.js';
import type { AgentEvent } from '../../../events/agents.js';
import type { OrchestrationEvent } from '../../../events/orchestration.js';
import type { CommunicationEvent } from '../../../events/communication.js';
import type { PluginEvent } from '../../../events/plugins.js';
import type { McpEvent } from '../../../events/mcp.js';
import type { TransportEvent } from '../../../events/transport.js';
import type { CompactionEvent } from '../../../events/compaction.js';
import type { SessionDomainState, TaskLifecycleState, RuntimeTask, AgentLifecycleState, RuntimeAgent, IntegrationRecord, ControlPlaneDomainState, ControlPlaneClientRecord, WatcherRecord, SurfaceRecord } from './domains/index.js';
import type { AutomationJob } from '../../automation/jobs.js';
import type { AutomationRun } from '../../automation/runs.js';
import type { AutomationSourceRecord } from '../../automation/sources.js';
import type { AutomationRouteBinding } from '../../automation/routes.js';
import type { AutomationSurfaceKind } from '../../automation/types.js';
import type { AutomationDeliveryAttempt } from '../../automation/delivery.js';
import type { RuntimeState } from './state.js';
export type RuntimeStore = StoreApi<RuntimeState>;
export declare function createRuntimeStore(): RuntimeStore;
export interface DomainDispatch {
    dispatchTurnEvent(event: TurnEvent): void;
    dispatchToolEvent(event: ToolEvent): void;
    dispatchPermissionEvent(event: PermissionEvent): void;
    dispatchTaskEvent(event: TaskEvent): void;
    dispatchAgentEvent(event: AgentEvent): void;
    dispatchOrchestrationEvent(event: OrchestrationEvent): void;
    dispatchCommunicationEvent(event: CommunicationEvent): void;
    dispatchPluginEvent(event: PluginEvent): void;
    dispatchMcpEvent(event: McpEvent): void;
    dispatchTransportEvent(event: TransportEvent): void;
    dispatchCompactionEvent(event: CompactionEvent): void;
    syncSessionState(patch: Partial<SessionDomainState>, source?: string): void;
    syncRuntimeTask(task: RuntimeTask, source?: string): void;
    transitionRuntimeTask(taskId: string, status: TaskLifecycleState, patch?: Partial<RuntimeTask>, source?: string): void;
    transitionRuntimeAgent(agentId: string, status: AgentLifecycleState, patch?: Partial<RuntimeAgent>, source?: string): void;
    syncIntegration(record: IntegrationRecord, source?: string): void;
    syncAutomationSource(record: AutomationSourceRecord, source?: string): void;
    syncAutomationJob(record: AutomationJob, source?: string): void;
    syncAutomationRun(record: AutomationRun, source?: string): void;
    syncRouteBinding(record: AutomationRouteBinding, source?: string): void;
    recordRouteBindingFailure(surfaceKind: AutomationSurfaceKind, externalId: string, source?: string): void;
    syncControlPlaneClient(record: ControlPlaneClientRecord, source?: string): void;
    syncControlPlaneState(patch: Partial<ControlPlaneDomainState>, source?: string): void;
    syncDeliveryAttempt(record: AutomationDeliveryAttempt, source?: string): void;
    syncSurface(record: SurfaceRecord, source?: string): void;
    syncWatcher(record: WatcherRecord, source?: string): void;
}
export declare function createDomainDispatch(store: RuntimeStore): DomainDispatch;
export type { RuntimeState } from './state.js';
export { createInitialRuntimeState } from './state.js';
export * from './selectors/index.js';
export * from './domains/index.js';
//# sourceMappingURL=index.d.ts.map