import type { KaijiBotConfig } from "../config/config.js";
import { type NormalizedPluginsConfig, type PluginActivationConfigSource } from "./config-state.js";
export type PluginActivationCompatConfig = {
    allowlistPluginIds?: readonly string[];
    enablementPluginIds?: readonly string[];
    vitestPluginIds?: readonly string[];
};
export type PluginActivationBundledCompatMode = {
    allowlist?: boolean;
    enablement?: "always" | "allowlist";
    vitest?: boolean;
};
export type PluginActivationInputs = {
    rawConfig?: KaijiBotConfig;
    config?: KaijiBotConfig;
    normalized: NormalizedPluginsConfig;
    activationSourceConfig?: KaijiBotConfig;
    activationSource: PluginActivationConfigSource;
    autoEnabledReasons: Record<string, string[]>;
};
export type PluginActivationSnapshot = Pick<PluginActivationInputs, "rawConfig" | "config" | "normalized" | "activationSourceConfig" | "activationSource" | "autoEnabledReasons">;
export type BundledPluginCompatibleActivationInputs = PluginActivationInputs & {
    compatPluginIds: string[];
};
export declare function withActivatedPluginIds(params: {
    config?: KaijiBotConfig;
    pluginIds: readonly string[];
}): KaijiBotConfig | undefined;
export declare function applyPluginCompatibilityOverrides(params: {
    config?: KaijiBotConfig;
    compat?: PluginActivationCompatConfig;
    env: NodeJS.ProcessEnv;
}): KaijiBotConfig | undefined;
export declare function resolvePluginActivationSnapshot(params: {
    rawConfig?: KaijiBotConfig;
    resolvedConfig?: KaijiBotConfig;
    autoEnabledReasons?: Record<string, string[]>;
    env?: NodeJS.ProcessEnv;
    applyAutoEnable?: boolean;
}): PluginActivationSnapshot;
export declare function resolvePluginActivationInputs(params: {
    rawConfig?: KaijiBotConfig;
    resolvedConfig?: KaijiBotConfig;
    autoEnabledReasons?: Record<string, string[]>;
    env?: NodeJS.ProcessEnv;
    compat?: PluginActivationCompatConfig;
    applyAutoEnable?: boolean;
}): PluginActivationInputs;
export declare function resolveBundledPluginCompatibleActivationInputs(params: {
    rawConfig?: KaijiBotConfig;
    resolvedConfig?: KaijiBotConfig;
    autoEnabledReasons?: Record<string, string[]>;
    env?: NodeJS.ProcessEnv;
    workspaceDir?: string;
    onlyPluginIds?: readonly string[];
    applyAutoEnable?: boolean;
    compatMode: PluginActivationBundledCompatMode;
    resolveCompatPluginIds: (params: {
        config?: KaijiBotConfig;
        workspaceDir?: string;
        env?: NodeJS.ProcessEnv;
        onlyPluginIds?: readonly string[];
    }) => string[];
}): BundledPluginCompatibleActivationInputs;
