import { SmrtClassOptions } from '@happyvertical/smrt-core'; import { DevelopmentRequestCollection } from '../collections/DevelopmentRequests.js'; import { DevelopmentRequest } from '../models/DevelopmentRequest.js'; import { DevelopmentRequestWorkLink, DevelopmentRequestWorkLinkCollection } from '../models/delivery-control-plane.js'; import { DevelopmentTriageDecision } from '../types.js'; export interface DevelopmentWorkItem { type: string; id: string; canonicalStatus: string; providerRef?: string; metadata?: Record; } export interface DevelopmentWorkAdapter { createWorkItem(input: { request: DevelopmentRequest; idempotencyKey: string; }): Promise; getWorkItem(link: DevelopmentRequestWorkLink): Promise; requestApproval?(input: { request: DevelopmentRequest; previewId: string; /** Stable across retries; adapters must deduplicate this operation. */ idempotencyKey: string; approved: boolean; reason: string; }): Promise; } export interface DevelopmentViewer { tenantId: string; projectId: string; requesterId?: string; roles?: Array<'workspace' | 'project_team' | 'internal'>; } export declare class DevelopmentRequestService { private readonly requests; private readonly links; readonly workAdapter?: DevelopmentWorkAdapter | undefined; constructor(requests: DevelopmentRequestCollection, links: DevelopmentRequestWorkLinkCollection, workAdapter?: DevelopmentWorkAdapter | undefined); static create(options?: SmrtClassOptions, workAdapter?: DevelopmentWorkAdapter): Promise; /** Visibility is evaluated after tenant and project scoping. */ visibleFor(viewer: DevelopmentViewer): Promise; linksFor(request: DevelopmentRequest): Promise; triage(request: DevelopmentRequest, input: { decision: DevelopmentTriageDecision; reason: string; actorRef: string; mergeIntoRequestId?: string; split?: Array<{ description: string; type?: string; }>; }): Promise<{ request: DevelopmentRequest; links: DevelopmentRequestWorkLink[]; splitRequests: DevelopmentRequest[]; }>; syncWorkStatus(link: DevelopmentRequestWorkLink): Promise; private transition; private linkWork; } //# sourceMappingURL=development-request-service.d.ts.map