import { type HushAuditCommandContext } from './audit.js'; import type { HushArtifactDescriptor, HushArtifactShapeResult, HushTargetArtifactDescriptor } from './artifacts.js'; import type { HushBundleName, HushTargetName } from './domain.js'; import type { HushImportRepositoryMap } from './imports.js'; import { type ResolveV3Options } from './resolver.js'; import { type HushStagedArtifact } from './temp.js'; import type { HushContext, HushV3Repository, StoreContext } from '../types.js'; export type HushMaterializationMode = 'memory' | 'staged' | 'persisted'; export interface HushMaterializationOptions extends ResolveV3Options { store: StoreContext; repository: HushV3Repository; importedRepositories?: HushImportRepositoryMap; command?: HushAuditCommandContext; mode?: HushMaterializationMode; outputRoot?: string; } export interface HushMaterializeTargetOptions extends HushMaterializationOptions { targetName: HushTargetName; } export interface HushMaterializeBundleOptions extends HushMaterializationOptions { bundleName: HushBundleName; } export interface HushMaterialization { kind: 'target' | 'bundle'; identity: string; bundle?: string; target?: string; repositoryRoot: string; files: string[]; logicalPaths: string[]; env: Record; envVars: HushArtifactShapeResult['envVars']; targetArtifact: HushTargetArtifactDescriptor | null; artifacts: HushArtifactDescriptor[]; stagedArtifacts: HushStagedArtifact[]; mode: HushMaterializationMode; cleanup(): void; interruptedSignal(): 'SIGINT' | 'SIGTERM' | null; } export interface HushMaterializationFailure { target?: string; bundle?: string; reason: string; } export declare class HushMaterializationInterruptedError extends Error { readonly signal: 'SIGINT' | 'SIGTERM'; constructor(signal: 'SIGINT' | 'SIGTERM'); } export declare function materializeV3Target(ctx: HushContext, options: HushMaterializeTargetOptions): HushMaterialization; export declare function materializeV3Bundle(ctx: HushContext, options: HushMaterializeBundleOptions): HushMaterialization; export declare function withMaterializedTarget(ctx: HushContext, options: HushMaterializeTargetOptions, callback: (materialization: HushMaterialization) => T): T; export declare function withMaterializedBundle(ctx: HushContext, options: HushMaterializeBundleOptions, callback: (materialization: HushMaterialization) => T): T; //# sourceMappingURL=materialize.d.ts.map