import { WorkbenchHostExternalStateSource, WorkbenchHostExternalStateLookupInput } from '@tutti-os/workbench-surface';
import { AgentGuiWorkbenchProvider, AgentGuiWorkbenchNodeState, AgentGuiWorkbenchState, AgentGuiWorkbenchWorkspaceState } from './types.js';

declare function createDefaultAgentGuiWorkbenchNodeState(provider?: AgentGuiWorkbenchProvider): AgentGuiWorkbenchNodeState;
declare function normalizeAgentGuiWorkbenchState(state: unknown): AgentGuiWorkbenchState;
declare function projectAgentGuiWorkbenchState(state: AgentGuiWorkbenchNodeState): AgentGuiWorkbenchState;
declare function areAgentGuiWorkbenchStatesEqual(left: AgentGuiWorkbenchState, right: AgentGuiWorkbenchState): boolean;
declare function normalizeAgentGuiWorkbenchNodeState(state: Partial<AgentGuiWorkbenchNodeState> | null | undefined, fallbackProvider?: AgentGuiWorkbenchProvider): AgentGuiWorkbenchNodeState;
declare function areAgentGuiWorkbenchNodeStatesEqual(left: AgentGuiWorkbenchNodeState, right: AgentGuiWorkbenchNodeState): boolean;
declare function agentGuiWorkbenchProviderFromInstanceId(instanceId: string | null | undefined): AgentGuiWorkbenchProvider;
declare function createAgentGuiWorkbenchNodeStateSource(input: {
    typeId?: string;
    workspaceId: string;
}): {
    externalStateSource: WorkbenchHostExternalStateSource<AgentGuiWorkbenchState | null, AgentGuiWorkbenchWorkspaceState>;
    readNodeState: (request: Pick<WorkbenchHostExternalStateLookupInput, "instanceId" | "typeId">) => AgentGuiWorkbenchState | null;
    writeNodeState: (request: Pick<WorkbenchHostExternalStateLookupInput, "instanceId" | "typeId"> & {
        state: AgentGuiWorkbenchState;
    }) => void;
};

export { agentGuiWorkbenchProviderFromInstanceId, areAgentGuiWorkbenchNodeStatesEqual, areAgentGuiWorkbenchStatesEqual, createAgentGuiWorkbenchNodeStateSource, createDefaultAgentGuiWorkbenchNodeState, normalizeAgentGuiWorkbenchNodeState, normalizeAgentGuiWorkbenchState, projectAgentGuiWorkbenchState };
