/**
 * Local feature/capability manifest — CLI commands, MCP tools, profiles, env vars.
 * Fully local; no network required for discovery.
 */
import { type CliCommandGroup, type EnvVarRef } from "./cli-reference.js";
import { type AccessProfile, type AccessProfileMeta } from "./access-profiles.js";
export declare const FEATURE_MANIFEST_SCHEMA = "todos.feature_manifest.v1";
export interface FeatureArea {
    id: string;
    name: string;
    description: string;
    surfaces: Array<"cli" | "mcp" | "sdk">;
    cli_commands: string[];
    mcp_tools: string[];
}
export interface McpToolGroup {
    id: string;
    name: string;
    description: string;
    tools: string[];
}
export interface FeatureManifest {
    schema_version: typeof FEATURE_MANIFEST_SCHEMA;
    generated_at: string;
    local_only: true;
    active_profile: AccessProfile;
    cli: {
        command_groups: CliCommandGroup[];
        top_level_commands: string[];
        nested_subcommands: Record<string, string[]>;
        command_count: number;
    };
    mcp: {
        tool_groups: McpToolGroup[];
        total_tools: number;
        tools_for_profile: string[];
        tools_for_profile_count: number;
    };
    profiles: AccessProfileMeta[];
    env_vars: EnvVarRef[];
    feature_areas: FeatureArea[];
    summary: {
        feature_area_count: number;
        cli_command_count: number;
        mcp_tool_count: number;
        profile_count: number;
        env_var_count: number;
    };
}
export type CapabilityKind = "feature_area" | "cli_command" | "mcp_tool" | "profile" | "env_var";
export interface CapabilityMatch {
    kind: CapabilityKind;
    id: string;
    name: string;
    description: string;
    surface: "cli" | "mcp" | "config" | "meta";
    group?: string;
}
export interface CapabilityDiscovery {
    schema_version: typeof FEATURE_MANIFEST_SCHEMA;
    generated_at: string;
    query: string | null;
    surface: "all" | "cli" | "mcp";
    matches: CapabilityMatch[];
    feature_areas: FeatureArea[];
    totals: {
        cli: number;
        mcp: number;
        areas: number;
        profiles: number;
        env_vars: number;
        matched: number;
    };
}
export interface BuildFeatureManifestOptions {
    profile?: AccessProfile;
    generated_at?: string;
}
export interface GetCapabilityDiscoveryOptions {
    query?: string;
    surface?: "all" | "cli" | "mcp";
    profile?: AccessProfile;
    generated_at?: string;
    limit?: number;
}
/** Canonical sorted MCP tool names registered in src/mcp/tools. */
export declare const ALL_MCP_TOOLS: string[];
export declare const FEATURE_AREAS: FeatureArea[];
export declare function listMcpToolNames(): string[];
export declare function categorizeMcpTool(tool: string): string;
export declare function buildMcpToolGroups(tools?: string[]): McpToolGroup[];
export declare function buildFeatureManifest(options?: BuildFeatureManifestOptions): FeatureManifest;
export declare function getCapabilityDiscovery(options?: GetCapabilityDiscoveryOptions): CapabilityDiscovery;
export declare function normalizeFeatureManifest(manifest: FeatureManifest, generatedAt?: string): Record<string, unknown>;
export declare function formatFeatureManifestReport(manifest: FeatureManifest, options?: {
    deterministic?: boolean;
}): string;
export declare function getFeatureManifestDocs(): string;
export declare function validateFeatureManifest(manifest: FeatureManifest): string[];
//# sourceMappingURL=feature-manifest.d.ts.map