import type { ProjectDataModel, ProjectDataRecord } from "../db/project-store.js"; import type { JsonObject, Workspace, WorkspaceAgentAssignment, WorkspaceEvent, WorkspaceLocation } from "../types/workspace.js"; import type { WorkspaceTmuxResult, WorkspaceTmuxWindowSpec } from "./workspace-runtime.js"; export declare const PROJECT_RENDER_SCHEMA_VERSION: 1; export declare const projectsJsonRenderSchema: import("@json-render/core").Schema<{ spec: import("@json-render/core").SchemaType<"object", { root: import("@json-render/core").SchemaType<"string", unknown>; elements: import("@json-render/core").SchemaType<"record", import("@json-render/core").SchemaType<"object", { type: import("@json-render/core").SchemaType<"ref", string>; props: import("@json-render/core").SchemaType<"propsOf", string>; children: import("@json-render/core").SchemaType<"array", import("@json-render/core").SchemaType<"string", unknown>>; }>>; metadata: import("@json-render/core").SchemaType<"any", unknown>; }>; catalog: import("@json-render/core").SchemaType<"object", { components: import("@json-render/core").SchemaType<"map", { props: import("@json-render/core").SchemaType<"zod", unknown>; description: import("@json-render/core").SchemaType<"string", unknown>; }>; actions: import("@json-render/core").SchemaType<"map", { props: import("@json-render/core").SchemaType<"zod", unknown>; description: import("@json-render/core").SchemaType<"string", unknown>; }>; }>; }>; export declare const projectsJsonRenderCatalog: import("@json-render/core").Catalog<{ spec: import("@json-render/core").SchemaType<"object", { root: import("@json-render/core").SchemaType<"string", unknown>; elements: import("@json-render/core").SchemaType<"record", import("@json-render/core").SchemaType<"object", { type: import("@json-render/core").SchemaType<"ref", string>; props: import("@json-render/core").SchemaType<"propsOf", string>; children: import("@json-render/core").SchemaType<"array", import("@json-render/core").SchemaType<"string", unknown>>; }>>; metadata: import("@json-render/core").SchemaType<"any", unknown>; }>; catalog: import("@json-render/core").SchemaType<"object", { components: import("@json-render/core").SchemaType<"map", { props: import("@json-render/core").SchemaType<"zod", unknown>; description: import("@json-render/core").SchemaType<"string", unknown>; }>; actions: import("@json-render/core").SchemaType<"map", { props: import("@json-render/core").SchemaType<"zod", unknown>; description: import("@json-render/core").SchemaType<"string", unknown>; }>; }>; }, { components: { Card: { props: never; description: string; }; Table: { props: never; description: string; }; Stat: { props: never; description: string; }; Badge: { props: never; description: string; }; Tabs: { props: never; description: string; }; Timeline: { props: never; description: string; }; Actions: { props: never; description: string; }; Canvas: { props: never; description: string; }; ProjectCanvasCard: { props: never; description: string; }; SourcePanel: { props: never; description: string; }; FilePreviewDialog: { props: never; description: string; }; }; actions: { runCommand: { props: never; description: string; }; openPath: { props: never; description: string; }; }; }>; export interface ProjectsJsonRenderSpec extends JsonObject { root: string; elements: Record; metadata: JsonObject; } type ProjectsRenderComponent = keyof typeof projectsJsonRenderCatalog.data.components; interface ProjectsRenderElement { type: ProjectsRenderComponent; props: Record; children: string[]; } export declare function validateProjectsRenderSpec(spec: unknown): ProjectsJsonRenderSpec; export declare function isProjectsRenderSpec(value: unknown): value is ProjectsJsonRenderSpec; export declare function buildProjectStartRender(args: { project: Workspace; tmux: WorkspaceTmuxResult; sessionPolicy: string; agentTool: string; toolCommand?: string; renameReport: JsonObject[]; resolutionSource: string; }): JsonObject; export declare function buildProjectStatusRender(args: { project: Workspace; sessionName: string; exists: boolean; tmuxAvailable: boolean; expectedWindows: WorkspaceTmuxWindowSpec[]; currentWindows: Array<{ name: string; dead?: boolean; reason?: string; }>; errors: string[]; }): JsonObject; export declare function buildProjectListRender(projects: Workspace[]): JsonObject; export declare function buildProjectStartBulkRender(args: { dryRun: boolean; started: Array<{ project: Workspace; tmux?: { success?: boolean; session_name?: string; session_action?: string; }; }>; failed: Array<{ target: string; error: string; }>; summary: Record; }): JsonObject; export declare function buildRootsRender(roots: Array<{ slug: string; name: string; base_path: string; default_kind: string | null; github_org: string | null; tags: string[]; }>): JsonObject; export declare function buildRecipesRender(recipes: Array<{ slug: string; name: string; kind: string | null; version: number; default_tags: string[]; }>): JsonObject; export declare function buildProjectDetailPayload(args: { project: Workspace; agents: WorkspaceAgentAssignment[]; locations: WorkspaceLocation[]; events: WorkspaceEvent[]; }): JsonObject; export interface ProjectSessionRecord extends JsonObject { event_id: string; project_id: string | null; project_slug: string; created_at: string; source: string; session_name: string | null; session_action: string | null; windows: JsonObject[]; rename_report: JsonObject[]; unrenamed: boolean; } export declare function startEventToSessionRecord(event: WorkspaceEvent, projectSlug: string): ProjectSessionRecord; export declare function projectSessionRecords(project: Workspace, events: WorkspaceEvent[]): ProjectSessionRecord[]; export declare function buildProjectSessionsPayload(args: { project: Workspace; events: WorkspaceEvent[]; limit?: number; unrenamedOnly?: boolean; }): JsonObject; export declare function buildRecentSessionsPayload(args: { startEvents: Array<{ event: WorkspaceEvent; project_slug: string; }>; limit?: number; unrenamedOnly?: boolean; }): JsonObject; export declare function buildProjectDataModelRender(args: { project: Workspace; model: ProjectDataModel; records: ProjectDataRecord[]; }): JsonObject; export {}; //# sourceMappingURL=project-render.d.ts.map