export type RiskLevel = "low" | "medium" | "high" | "critical"; export type ExecutionMode = "normal" | "long-running" | "watch" | "interactive" | "background"; interface EffectWrite { target: string; description?: string; overwrite?: boolean; destructive?: boolean; idempotent?: boolean; idempotency_key?: string; idempotent_note?: string; } interface EffectRead { target: string; description?: string; } interface NetworkEffect { description?: string; domains?: string[]; idempotent?: boolean; idempotency_key?: string; idempotent_note?: string; } interface Effects { risk_level?: RiskLevel; reads?: EffectRead[]; writes?: EffectWrite[]; network?: NetworkEffect | boolean; execution_mode?: ExecutionMode; requires_confirmation?: boolean; } interface FileContract { mode: "read" | "write" | "append" | "readWrite"; } interface Option { name: string; schema?: { type?: string; [key: string]: unknown; }; file?: FileContract; effects?: Effects; repeatable?: boolean; } interface EnvVar { sensitive?: boolean; } export type DerivedReadEffect = { kind: "option-file"; option: string; path?: string; source: string; } | { kind: "semantic"; target: string; description?: string; source: string; }; export type DerivedWriteEffect = { kind: "option-file"; option: string; path?: string; mode: string; source: string; } | { kind: "semantic"; target: string; description?: string; overwrite?: boolean; destructive?: boolean; idempotent?: boolean; idempotency_key?: string; idempotent_note?: string; source: string; }; export interface DerivedNetworkEffect { description?: string; domains?: string[]; idempotent?: boolean; idempotency_key?: string; idempotent_note?: string; source: string; } export interface DerivedPolicy { risk_level: RiskLevel; requires_confirmation: boolean; idempotent: boolean; side_effects: string[]; reads: DerivedReadEffect[]; writes: DerivedWriteEffect[]; network?: DerivedNetworkEffect[]; execution_mode?: ExecutionMode; requires_secrets?: string[]; } export interface IntrospectionResult { command: string; active_options: string[]; policy: DerivedPolicy; } export interface OptionInput { value: unknown; specified: boolean; } export interface PolicyDerivationInput { command_id: string; command_effects?: Effects; options: Record; env?: Record; } export declare function isOptionActive(definition: Option, value: unknown, specified: boolean): boolean; export declare function derivePolicy(input: PolicyDerivationInput): DerivedPolicy; export {}; //# sourceMappingURL=policy-runtime.d.ts.map