import type { AgentJSON, AgentMap, GuardJSON, GuardMap, ProjectSchemaJSON, QueryJSON } from './project-schema/index.ts';
/**
 * Special transition destination ID for a newly created, never started session.
 */
export declare const AGENT_SESSION_CREATED = "SESSION_CREATED";
/**
 * Special transition destination ID for a started session.
 */
export declare const START_AGENT_EXECUTION = "START";
/**
 * Special transition destination ID for agent transitions that end the agent execution.
 */
export declare const END_AGENT_EXECUTION = "END";
/**
 * Special history strategy ID that indicates the history should be cleared.
 */
export declare const CLEAR_HISTORY_STRATEGY_ID = "clearHistory";
export declare const EXECUTION_TYPE_CHAT = "chat";
export declare const EXECUTION_TYPE_GENERATE = "generate";
export declare const EXECUTION_TYPE_GRAPHQL = "graphql";
export declare function getAgentEndStates(agent: AgentJSON, includeSuspend?: boolean): Set<string>;
export declare const getCreateAgentSessionMutationName: (agentName: string) => string;
export declare const getInspectAgentQueryName: (agentName: string) => string;
export declare const getSendAgentFeedbackMutationName: (agentName: string) => string;
export declare const getGetAgentMessageQueryName: (agentName: string) => string;
export declare const getAbortAgentMessageMutationName: (agentName: string) => string;
export declare const getSendAgentMessageMutationName: (inputName: string) => string;
export declare function getAgentFeatures(agents: AgentMap): Pick<ProjectSchemaJSON, 'queries' | 'mutations' | 'shapes'>;
export declare function isValidAgentMutation(projectSchema: ProjectSchemaJSON, name: string): boolean;
export declare function addAiQueries(projectSchema: ProjectSchemaJSON): ProjectSchemaJSON;
/**
 * Where guards live in the schema.
 */
export declare const GUARDS_SCHEMA_PATH: readonly ["guards"];
export declare const AGENTS_SCHEMA_PATH: readonly ["agents"];
/**
 * Check if a guard is enabled.
 */
export declare const isGuardEnabled: (guard: GuardJSON | undefined) => boolean;
export declare function getGuardMap(schema: ProjectSchemaJSON): GuardMap | undefined;
export declare function getGuards(schema: ProjectSchemaJSON): (GuardJSON & {
    id: string;
})[];
export declare function setGuardMap<S extends Partial<ProjectSchemaJSON>>(schema: S, guards: GuardMap): S;
export declare function setGuard<S extends Partial<ProjectSchemaJSON>>(schema: S, id: string, guard: GuardJSON): S;
/**
 * Get a guard configuration from the project schema.
 */
export declare function getGuardConfig(schema: ProjectSchemaJSON, guardId: string): GuardJSON | undefined;
/**
 * Get a guard configuration from the project schema, but only if it is enabled.
 */
export declare function getEnabledGuardConfig(schema: ProjectSchemaJSON, guardId: string): GuardJSON | undefined;
export declare function getAgentMap(projectSchema: Pick<ProjectSchemaJSON, 'agents'>): AgentMap | undefined;
export declare function getAgents(projectSchema: Pick<ProjectSchemaJSON, 'agents'>): (AgentJSON & {
    name: string;
})[] | undefined;
export declare function setAgentMap<S extends Partial<ProjectSchemaJSON>>(projectSchema: S, agents: AgentMap): S;
export declare function setAgent<S extends Partial<ProjectSchemaJSON>>(projectSchema: S, name: string, agent: AgentJSON): S;
export declare function getAgent(projectSchema: ProjectSchemaJSON, name: string): AgentJSON | undefined;
export declare function ensureAgent(projectSchema: ProjectSchemaJSON, name: string): AgentJSON;
export declare function isAgentQuery(query: QueryJSON, agentName: string): boolean;
