/**
 * Default Policy Templates
 *
 * Pre-configured MissionPolicy templates for common use cases.
 * These are re-exported from the types layer for convenience,
 * with additional factory helpers for creating policies from templates.
 *
 * @module services/policy/default-policies
 */
import type { MissionPolicy, UpdatePolicyInput } from '../../types/v2/index.js';
import { CONSERVATIVE_POLICY, MODERATE_POLICY, AUTONOMOUS_POLICY } from '../../types/v2/index.js';
/** Available policy template names. */
export type PolicyTemplateName = 'conservative' | 'moderate' | 'autonomous';
/** All valid template names. */
export declare const POLICY_TEMPLATE_NAMES: readonly PolicyTemplateName[];
/**
 * Checks whether a string is a valid policy template name.
 *
 * @param value - The string to check
 * @returns True if value is a valid PolicyTemplateName
 */
export declare function isValidPolicyTemplateName(value: string): value is PolicyTemplateName;
/**
 * Human-readable descriptions of each policy template.
 */
export declare const POLICY_TEMPLATE_DESCRIPTIONS: Record<PolicyTemplateName, string>;
/**
 * Creates a policy from a template name, optionally applying overrides.
 *
 * @param missionId - The mission this policy belongs to
 * @param template - Template name
 * @param overrides - Optional field overrides
 * @returns A fully populated MissionPolicy
 *
 * @example
 * ```typescript
 * const policy = createPolicyFromTemplate('mission-1', 'moderate', {
 *   canDeployToStaging: true,
 *   maxParallelExecutions: 5,
 * });
 * ```
 */
export declare function createPolicyFromTemplate(missionId: string, template: PolicyTemplateName, overrides?: UpdatePolicyInput): MissionPolicy;
/**
 * Applies partial updates to an existing policy.
 * Preserves missionId and any fields not in the update.
 *
 * @param existing - The current policy
 * @param updates - Fields to update
 * @returns Updated policy (new object, doesn't mutate)
 */
export declare function applyPolicyUpdate(existing: MissionPolicy, updates: UpdatePolicyInput): MissionPolicy;
/**
 * Returns a summary of what a policy allows/blocks, for display purposes.
 *
 * @param policy - The policy to summarize
 * @returns Object with allowed and blocked action lists
 */
export declare function summarizePolicy(policy: MissionPolicy): {
    allowed: string[];
    blocked: string[];
    maxParallel: number;
    escalationCount: number;
};
export { CONSERVATIVE_POLICY, MODERATE_POLICY, AUTONOMOUS_POLICY };
//# sourceMappingURL=default-policies.d.ts.map