import type { DaoCoreConfig } from "../config/types.js";
import type { PluginManifestRecord } from "./manifest-registry.js";
import type { PluginDiagnostic } from "./manifest-types.js";
import type { PluginManifestActivationCapability } from "./manifest.js";
import type { PluginOrigin } from "./plugin-origin.types.js";
export type PluginActivationPlannerTrigger = {
    kind: "command";
    command: string;
} | {
    kind: "provider";
    provider: string;
} | {
    kind: "agentHarness";
    runtime: string;
} | {
    kind: "channel";
    channel: string;
} | {
    kind: "route";
    route: string;
} | {
    kind: "capability";
    capability: PluginManifestActivationCapability;
};
export type PluginActivationPlannerHintReason = "activation-agent-harness-hint" | "activation-capability-hint" | "activation-channel-hint" | "activation-command-hint" | "activation-provider-hint" | "activation-route-hint";
export type PluginActivationPlannerManifestReason = "manifest-channel-owner" | "manifest-command-alias" | "manifest-hook-owner" | "manifest-provider-owner" | "manifest-setup-provider-owner" | "manifest-tool-contract";
export type PluginActivationPlannerReason = PluginActivationPlannerHintReason | PluginActivationPlannerManifestReason;
export type PluginActivationPlanEntry = {
    pluginId: string;
    origin: PluginOrigin;
    reasons: readonly PluginActivationPlannerReason[];
};
export type PluginActivationPlan = {
    trigger: PluginActivationPlannerTrigger;
    pluginIds: readonly string[];
    entries: readonly PluginActivationPlanEntry[];
    diagnostics: readonly PluginDiagnostic[];
};
type ResolveManifestActivationPlanParams = {
    trigger: PluginActivationPlannerTrigger;
    config?: DaoCoreConfig;
    workspaceDir?: string;
    env?: NodeJS.ProcessEnv;
    origin?: PluginOrigin;
    onlyPluginIds?: readonly string[];
    manifestRecords?: readonly PluginManifestRecord[];
    allowRestrictiveAllowlistBypass?: boolean;
};
export declare function resolveManifestActivationPlan(params: ResolveManifestActivationPlanParams): PluginActivationPlan;
export declare function resolveManifestActivationPluginIds(params: ResolveManifestActivationPlanParams): string[];
export {};
