import type { DaoCoreConfig } from "../config/types.daocore.js";
export type NormalizedPluginsConfig = {
    enabled: boolean;
    allow: string[];
    deny: string[];
    loadPaths: string[];
    slots: {
        memory?: string | null;
        contextEngine?: string | null;
    };
    entries: Record<string, {
        enabled?: boolean;
        hooks?: {
            allowPromptInjection?: boolean;
            allowConversationAccess?: boolean;
            timeoutMs?: number;
            timeouts?: Record<string, number>;
        };
        subagent?: {
            allowModelOverride?: boolean;
            allowedModels?: string[];
            hasAllowedModelsConfig?: boolean;
        };
        llm?: {
            allowModelOverride?: boolean;
            allowedModels?: string[];
            hasAllowedModelsConfig?: boolean;
            allowAgentIdOverride?: boolean;
        };
        config?: unknown;
    }>;
};
export type NormalizePluginId = (id: string) => string;
export declare const identityNormalizePluginId: NormalizePluginId;
export declare function normalizePluginsConfigWithResolver(config?: DaoCoreConfig["plugins"], normalizePluginId?: NormalizePluginId): NormalizedPluginsConfig;
export declare function hasExplicitPluginConfig(plugins?: DaoCoreConfig["plugins"]): boolean;
export declare function isBundledChannelEnabledByChannelConfig(cfg: DaoCoreConfig | undefined, pluginId: string): boolean;
