import type { AgentInfoData, CompiledAgentManifest, CompiledSubagentNode, ResolvedScheduleDefinition } from "#internal/nitro/routes/agent-info/load-agent-info-data.js";
import type { ResolvedChannelDefinition, ResolvedToolDefinition } from "#runtime/types.js";
import type { AgentReasoningDefinition, ModelRouting } from "#shared/agent-definition.js";
import type { ModelEndpointStatus } from "#shared/model-endpoint-status.js";
export interface AgentInfoSource {
    readonly exportName?: string;
    readonly logicalPath: string;
    readonly sourceId?: string;
    readonly sourceKind: string;
}
export interface AgentInfoToolEntry extends AgentInfoSource {
    readonly description: string;
    readonly hasAuth: boolean;
    readonly hasExecute: boolean;
    readonly hasModelOutputProjection: boolean;
    readonly hasOutputSchema: boolean;
    readonly inputSchema: unknown;
    readonly name: string;
    readonly origin: "authored" | "framework";
    readonly outputSchema: unknown;
    readonly replacesFrameworkTool: boolean;
    readonly requiresApproval: boolean;
}
export interface AgentInfoFrameworkToolEntry extends AgentInfoToolEntry {
    readonly disabledByAuthor: boolean;
    readonly replacedByAuthoredTool: boolean;
    readonly status: "active" | "disabled" | "replaced";
}
export interface AgentInfoDynamicResolverEntry extends AgentInfoSource {
    readonly eventNames: readonly string[];
    readonly origin: "authored" | "framework";
    readonly slug: string;
}
export interface AgentInfoTools {
    readonly available: readonly AgentInfoToolEntry[];
    readonly authored: readonly AgentInfoToolEntry[];
    readonly disabledFramework: readonly string[];
    readonly dynamic: readonly AgentInfoDynamicResolverEntry[];
    readonly framework: readonly AgentInfoFrameworkToolEntry[];
    readonly reserved: readonly string[];
}
export interface AgentInfoSkillEntry extends AgentInfoSource {
    readonly description: string;
    readonly license?: string;
    readonly markdown: string;
    readonly metadata?: Readonly<Record<string, string>>;
    readonly name: string;
}
export interface AgentInfoInstructionsEntry extends AgentInfoSource {
    readonly markdown: string;
    readonly name: string;
}
export interface AgentInfoInstructions {
    readonly dynamic: readonly AgentInfoDynamicResolverEntry[];
    readonly static: AgentInfoInstructionsEntry | null;
}
export interface AgentInfoScheduleEntry extends AgentInfoSource {
    readonly cron: string;
    readonly hasRun: boolean;
    readonly markdown?: string;
    readonly name: string;
}
export interface AgentInfoSubagentEntry extends AgentInfoSource {
    readonly description: string;
    readonly entryPath: string;
    readonly name: string;
    readonly nodeId: string;
    readonly rootPath: string;
    readonly summary: {
        readonly channels: number;
        readonly connections: number;
        readonly hooks: number;
        readonly instructions: boolean;
        readonly schedules: number;
        readonly skills: number;
        readonly tools: number;
    };
}
export interface AgentInfoChannelEntry extends AgentInfoSource {
    readonly adapterKind?: string;
    readonly method: string;
    readonly name: string;
    readonly origin: "authored" | "framework";
    readonly urlPath: string;
}
export interface AgentInfoFrameworkChannelEntry extends AgentInfoChannelEntry {
    readonly disabledByAuthor: boolean;
    readonly replacedByAuthoredChannel: boolean;
    readonly status: "active" | "disabled" | "replaced";
}
export interface AgentInfoChannels {
    readonly authored: readonly AgentInfoChannelEntry[];
    readonly available: readonly AgentInfoChannelEntry[];
    readonly disabledFramework: readonly string[];
    readonly framework: readonly AgentInfoFrameworkChannelEntry[];
}
export interface AgentInfoConnectionEntry extends AgentInfoSource {
    readonly connectionName: string;
    readonly description: string;
    readonly hasApproval: boolean;
    readonly hasAuthorization: boolean;
    readonly hasHeaders: boolean;
    readonly protocol: string;
    readonly toolFilter?: unknown;
    readonly url: string;
}
export interface AgentInfoHookEntry extends AgentInfoSource {
    readonly eventNames: readonly string[];
    readonly slug: string;
}
export interface AgentInfoSandboxEntry extends AgentInfoSource {
    readonly backendKind?: string;
    readonly description?: string;
    readonly hasBootstrap: boolean;
    readonly hasOnSession: boolean;
    readonly revalidationKey?: string;
    readonly sourceHash?: string;
}
export interface AgentInfoDiagnostics {
    readonly discoveryErrors: number;
    readonly discoveryWarnings: number;
}
export interface AgentInfoResponse {
    readonly agent: {
        readonly agentRoot: string;
        readonly appRoot: string;
        readonly configSource?: AgentInfoSource;
        readonly description?: string;
        readonly model: {
            readonly contextWindowTokens?: number;
            readonly id: string;
            readonly providerOptions?: unknown;
            /** The agent's authored reasoning effort, forwarded to the model call. */
            readonly reasoning?: AgentReasoningDefinition;
            readonly source?: AgentInfoSource;
            readonly routing?: ModelRouting;
            readonly endpoint?: ModelEndpointStatus;
        };
        readonly name: string;
        readonly outputSchema?: unknown;
    };
    readonly capabilities: {
        readonly devRoutes: boolean;
    };
    readonly channels: AgentInfoChannels;
    readonly connections: readonly AgentInfoConnectionEntry[];
    readonly diagnostics: AgentInfoDiagnostics;
    readonly hooks: readonly AgentInfoHookEntry[];
    readonly instructions: AgentInfoInstructions;
    readonly kind: "eve-agent-info";
    readonly mode: "development" | "production";
    readonly sandbox: AgentInfoSandboxEntry | null;
    readonly schedules: readonly AgentInfoScheduleEntry[];
    readonly skills: {
        readonly static: readonly AgentInfoSkillEntry[];
        readonly dynamic: readonly AgentInfoDynamicResolverEntry[];
    };
    readonly subagents: {
        readonly local: readonly AgentInfoSubagentEntry[];
        readonly total: number;
    };
    readonly tools: AgentInfoTools;
    readonly version: 1;
    readonly workflow: {
        readonly enabled: boolean;
        readonly toolName: string;
    };
    readonly workspace: {
        readonly resourceRoot: unknown;
        readonly rootEntries: readonly string[];
    };
}
export declare function buildAgentInfoResponse(data: AgentInfoData, input: {
    readonly mode: AgentInfoResponse["mode"];
}): AgentInfoResponse;
export declare function buildFrameworkToolInfo(input: {
    readonly authoredToolNames: ReadonlySet<string>;
    readonly delegationToolNames: ReadonlySet<string>;
    readonly disabledFrameworkToolNames: ReadonlySet<string>;
}): Pick<AgentInfoTools, "available" | "framework">;
export declare function getRootDelegationToolNames(manifest: CompiledAgentManifest): ReadonlySet<string>;
export declare function renderChannel(channel: ResolvedChannelDefinition, input: {
    readonly origin: "authored" | "framework";
}): AgentInfoChannelEntry;
export declare function renderTool(tool: ResolvedToolDefinition, input: {
    readonly origin: "authored" | "framework";
    readonly replacesFrameworkTool: boolean;
}): AgentInfoToolEntry;
export declare function renderSchedule(schedule: ResolvedScheduleDefinition): AgentInfoScheduleEntry;
export declare function renderSubagent(subagent: CompiledSubagentNode): AgentInfoSubagentEntry;
export declare function renderDynamicResolver(resolver: {
    readonly eventNames: readonly string[];
    readonly exportName?: string;
    readonly logicalPath: string;
    readonly slug: string;
    readonly sourceId: string;
    readonly sourceKind: string;
}, input: {
    readonly origin: "authored" | "framework";
}): AgentInfoDynamicResolverEntry;
export declare function toSource(source: {
    readonly exportName?: string;
    readonly logicalPath: string;
    readonly sourceId?: string;
    readonly sourceKind: string;
}): AgentInfoSource;
