import type { DesignDocument } from './dist-lib/types/document/contracts.js'; import type { SourceProposalValidation, SourceValidationReceipt } from './source-validation.js'; import type { SourceFilePlan } from './dist-lib/types/host/sourceFilePlan.js'; import type { InspectApplyResult, InspectPreviewResult } from './dist-lib/types/editor/host.js'; import type { WorkspaceTarget } from './dist-lib/types/workspace/contracts.js'; import type { WorkspaceFileSourceRequest, WorkspaceSourceBaseline, WorkspaceSourceProposal, WorkspaceSourceProposalDetails, WorkspaceSourceValidation } from './dist-lib/types/workspace/source/flowContracts.js'; export interface WorkspaceSourcePlanCompileInput { target: WorkspaceTarget; baseline: WorkspaceSourceBaseline; document: DesignDocument; } export interface WorkspaceSourcePlanServiceOptions { /** When configured, every proposal requires a successful build/QA receipt for its exact plan. */ proposalValidation?: SourceProposalValidation; /** Callbacks receive detached, deeply frozen JSON captures and must settle on cancellation. */ loadBaseline(target: WorkspaceTarget, signal: AbortSignal): Promise; /** Owns full document validation and the source semantics of every changed field. */ compilePlan(input: WorkspaceSourcePlanCompileInput, signal: AbortSignal): Promise; /** Must check current file proofs; the service checks complete, nonempty diff coverage. */ previewPlan(plan: SourceFilePlan, target: WorkspaceTarget, signal: AbortSignal): Promise & Partial>>; /** Must recheck current source revision and proofs and apply the complete plan atomically. */ applyPlan(plan: SourceFilePlan, target: WorkspaceTarget, signal: AbortSignal): Promise; /** Receives only a complete, reviewed, single-use plan. Publish to a new branch and Draft PR; never merge. */ proposePlan?(input: { plan: SourceFilePlan; target: WorkspaceTarget; details: WorkspaceSourceProposalDetails; before: DesignDocument; after: DesignDocument; signal: AbortSignal; validation?: SourceValidationReceipt }): Promise; /** Recovers only the retained failed publication. Respect the explicit read-only or preparation-only action. */ recoverPlan?(input: Parameters>[0] & { recovery: import('./node/source-publication-recovery.mjs').SourcePublicationRecoveryAction }): Promise; assertTarget(target: WorkspaceTarget, signal: AbortSignal): void | Promise; /** Idle lifetime, default and maximum 30 minutes. Active QA and retained publication failures renew it; reviewing a diff does not. */ receiptTtlMs?: number; /** Default and maximum: 8 compiled document receipts. */ maxReceipts?: number; now?: () => number; } export interface WorkspaceSourcePlanService { /** Loads may run concurrently; every other operation is mutually exclusive. */ load(target: WorkspaceTarget, signal?: AbortSignal): Promise; /** Reloads and compares the complete baseline before issuing a bounded server receipt. */ compile(input: WorkspaceSourcePlanCompileInput, signal?: AbortSignal): Promise; preview(request: WorkspaceFileSourceRequest, signal?: AbortSignal): Promise; validateSource(request: WorkspaceFileSourceRequest, signal?: AbortSignal): Promise; /** A writer attempt consumes all receipts. Cancellation does not establish rollback. */ apply(request: WorkspaceFileSourceRequest, signal?: AbortSignal): Promise; propose(input: { request: WorkspaceFileSourceRequest; details: WorkspaceSourceProposalDetails }, signal?: AbortSignal): Promise; recoverProposal(input: { request: WorkspaceFileSourceRequest }, signal?: AbortSignal): Promise; /** Required before preparing an immutable built artifact from a browser-supplied file plan. */ validatePreviewRequest(request: WorkspaceFileSourceRequest, signal?: AbortSignal): Promise; /** Aborts in-flight callbacks, clears receipts, and rejects their later completions. */ dispose(): void; } export declare function createWorkspaceSourcePlanService(options: WorkspaceSourcePlanServiceOptions): WorkspaceSourcePlanService; export interface CapturedWorkspaceSourceService extends Omit { register(input: { target: WorkspaceTarget; document: DesignDocument }, signal?: AbortSignal): Promise; } /** The host validates capture provenance and declares allowed source rules from exact revision files. */ export declare function createCapturedWorkspaceSourceService(options: Omit & { projectBaseline(input: { target: WorkspaceTarget; document: DesignDocument }, signal?: AbortSignal): Promise; }): CapturedWorkspaceSourceService; /** Connects captured plain text to verified literal JSX; dynamic expressions are excluded. */ export declare function mapCapturedStaticText(input: { document: import('./dist-lib/types/document/contracts.js').DesignDocument; sourceInputs: Readonly>; affectedFrames: readonly import('./dist-lib/types/editor/inspect.js').SourceAffectedFrame[]; }): import('./dist-lib/types/workspace/source/contracts.js').WorkspaceVisualSourceRule[];