import type { ControlPlaneEnvironment, ControlPlaneOrganization, ControlPlaneProject, ControlPlaneStore, JsonValue } from '../control-plane';
import type { ScanResult } from './pre-deploy-scanner';
import type { SecurityDeployDecision, SecurityPolicy, SecurityPostureFinding, SecurityScanRun, SecurityScope } from './types';
import { SecurityPostureStore } from './posture-store';
export interface SecurityControlPlaneContext {
    store: ControlPlaneStore;
    organization: ControlPlaneOrganization;
    project: ControlPlaneProject;
    environments: Map<string, ControlPlaneEnvironment>;
}
export declare function securityScope(context: SecurityControlPlaneContext, environment: string): SecurityScope & {
    projectId: string;
    environmentId: string;
};
export declare function ensureDefaultSecurityPolicies(context: SecurityControlPlaneContext, actorId?: string): SecurityPolicy[];
export declare function recordPreDeploySecretScan(posture: SecurityPostureStore, scope: SecurityScope, result: ScanResult, options?: {
    scannerVersion?: string;
    skipped?: boolean;
}): {
    run: SecurityScanRun;
    findings: SecurityPostureFinding[];
};
export declare function recordSkippedSecretScan(posture: SecurityPostureStore, scope: SecurityScope, reason?: string): {
    run: SecurityScanRun;
    findings: SecurityPostureFinding[];
};
export declare function recordDashboardHostPosture(posture: SecurityPostureStore, scope: SecurityScope, data: Record<string, any>): {
    run: SecurityScanRun;
    findings: SecurityPostureFinding[];
};
export declare function productionChangeReview(posture: SecurityPostureStore, input: {
    scope: SecurityScope & {
        projectId: string;
        environmentId: string;
    };
    operationId?: string;
    desiredConfigHash?: string;
}): {
    decision: SecurityDeployDecision;
    summary: JsonValue;
};
