import { TestDefinition } from '@dokkimi/config'; export interface DeploymentContext { runId: string; instanceId: string; instanceItemIds: Map; definition: DeployableDefinition; } export interface BrowserConfig { version?: string; } export interface DefinitionConfig { timeoutSeconds?: number; browser?: BrowserConfig; } export interface DeployableDefinition { name: string; description?: string | null; items: DefinitionItem[]; tests?: TestDefinition[]; variables?: Record; config?: DefinitionConfig; } export interface DefinitionItem { name: string; type: 'SERVICE' | 'WORKER' | 'DATABASE' | 'BROKER' | 'MOCK'; description?: string | null; stage?: number | null; image?: string | null; port?: number | null; healthCheck?: string | null; uiPath?: string | null; domain?: string | null; env?: Record | null; minCpu?: number | null; minMemory?: number | null; maxCpu?: number | null; maxMemory?: number | null; localDevPath?: string | null; mountPath?: string | null; command?: string[] | null; entrypoint?: string[] | null; mountFiles?: DefinitionMountFile[] | null; broker?: string | null; database?: string | null; version?: string | null; dbName?: string | null; dbUser?: string | null; dbPassword?: string | null; noAuth?: boolean | null; initFiles?: DefinitionInitFile[] | null; mockMethod?: string | null; mockOrigin?: string | null; mockTarget?: string | null; mockPath?: string | null; mockDelayMs?: number | null; mockResponseStatus?: number | null; mockRequestBodyContains?: string | null; mockRequestBodyMatches?: string | null; mockResponseHeaders?: Record | null; mockResponseBody?: unknown; } export interface DefinitionInitFile { filename: string; content: Buffer; } export interface DefinitionMountFile { source: string; target: string; content: Buffer; } export declare function groupItemsByStage(items: DefinitionItem[]): DefinitionItem[][];