import type { JsonValue } from '../control-plane';
import type { CycloneDxDocument } from './artifacts';
import type { SecurityPostureStore } from './posture-store';
import type { SecurityScanner } from './scanners';
import type { SecurityScope } from './types';
import { SecurityScannerRunner } from './scanners';
export interface SecureContainerReleaseInput {
    scope: SecurityScope & {
        projectId: string;
        environmentId: string;
    };
    releaseId: string;
    imageRef: string;
    imageSha256?: string;
    artifactRoot: string;
    invocationId: string;
    startedAt: string;
    completedAt?: string;
    externalParameters?: JsonValue;
    scanner?: SecurityScanner;
    scannerTimeoutMs?: number;
    sbomTimeoutMs?: number;
    generateImageSbom?: (imageRef: string, options: {
        signal?: AbortSignal;
    }) => Promise<CycloneDxDocument>;
}
/**
 * Produces the security record for a built container without sending image or
 * source data to a hosted service. Optional local tooling may be absent: that
 * state is persisted and a manifest SBOM is used when possible.
 */
export declare function secureContainerRelease(_posture: SecurityPostureStore, _input: SecureContainerReleaseInput): Promise<{
    scan: Awaited<ReturnType<SecurityScannerRunner['run']>>;
    sbomSource: 'image' | 'manifest' | 'unavailable';
}>;
