import type { EffectivePolicySnapshot, ExecutionEnvironment, LifecycleArtifact, PolicyDocument, TrustMetadata, ToolRequest } from "@h9-foundry/agentforge-shared-types";
export interface PolicyDecision {
    readonly allowed: boolean;
    readonly effect: "allow" | "deny" | "approval_required";
    readonly requiresApproval: boolean;
    readonly reason?: string;
}
export interface PluginActivationDecisionOptions {
    readonly distributionChannel?: "manual" | "npm";
    readonly activationSupport: "not-supported" | "approval-required";
    readonly verificationMode?: "none" | "checksum" | "attestation";
    readonly verificationEvidenceRefs?: readonly string[];
    readonly compatibilityIssues?: readonly {
        readonly message: string;
    }[];
    readonly approvalGranted?: boolean;
}
export declare function loadPolicyDocument(policyPath: string): PolicyDocument;
export declare function resolvePolicy(policy: PolicyDocument, environment: ExecutionEnvironment): EffectivePolicySnapshot;
export declare function createPolicyEngine(policy: EffectivePolicySnapshot, repoRoot: string): {
    snapshot: {
        version: number;
        plugins: {
            allowedTiers: ("core" | "verified" | "community" | "untrusted")[];
            allowedSources: ("official" | "local" | "third-party")[];
            requireReviewed: boolean;
        };
        tools: Record<string, {
            effect: "allow" | "deny" | "approval_required";
            allowedCommands?: string[] | undefined;
            allowedPaths?: string[] | undefined;
            allowedHosts?: string[] | undefined;
        }>;
        environment: "ci" | "local";
        resolvedAt: string;
        defaults: {
            network: "allow" | "deny" | "approval_required";
            executionMode: "suggest" | "inspect" | "apply";
            modelAccess: boolean;
            writes: "allow" | "deny" | "approval_required";
        };
        paths: {
            blocked: string[];
            allowedRead: string[];
            allowedWrite: string[];
        };
    };
    canReadPath(pathValue: string): PolicyDecision;
    canWritePath(pathValue: string): PolicyDecision;
    evaluatePluginTrust: (name: string, trust: TrustMetadata) => PolicyDecision;
    evaluatePluginActivation: (name: string, trust: TrustMetadata, options: PluginActivationDecisionOptions) => PolicyDecision;
    evaluateToolRequest: (request: ToolRequest) => PolicyDecision;
    filterBlockedPaths(paths: readonly string[]): string[];
    redactSecrets: (value: string) => string;
    sanitizeLifecycleArtifact: (artifact: LifecycleArtifact) => LifecycleArtifact;
};
//# sourceMappingURL=index.d.ts.map