import type { UiService } from './types.js'; export declare function createAppRouter(service: UiService): import("@trpc/server").TRPCBuiltRouter<{ ctx: object; meta: object; errorShape: import("@trpc/server").TRPCDefaultErrorShape; transformer: false; }, import("@trpc/server").TRPCDecorateCreateRouterOptions<{ projects: import("@trpc/server").TRPCBuiltRouter<{ ctx: object; meta: object; errorShape: import("@trpc/server").TRPCDefaultErrorShape; transformer: false; }, import("@trpc/server").TRPCDecorateCreateRouterOptions<{ list: import("@trpc/server").TRPCQueryProcedure<{ input: Record; output: import("./types.js").ProjectConduitInfo[]; meta: object; }>; create: import("@trpc/server").TRPCMutationProcedure<{ input: { name: string; }; output: import("./types.js").ProjectCreateReturn; meta: object; }>; }>>; sessions: import("@trpc/server").TRPCBuiltRouter<{ ctx: object; meta: object; errorShape: import("@trpc/server").TRPCDefaultErrorShape; transformer: false; }, import("@trpc/server").TRPCDecorateCreateRouterOptions<{ list: import("@trpc/server").TRPCQueryProcedure<{ input: { projectId?: string; resumable?: boolean; origin?: "direct" | "thread" | "scheduled"; }; output: import("./types.js").SessionInfo[]; meta: object; }>; transcript: import("@trpc/server").TRPCQueryProcedure<{ input: { sessionId: string; }; output: import("./types.js").SessionTranscript; meta: object; }>; pendingInteraction: import("@trpc/server").TRPCQueryProcedure<{ input: { sessionId: string; }; output: import("./types.js").SessionsPendingInteraction; meta: object; }>; create: import("@trpc/server").TRPCMutationProcedure<{ input: { projectId?: string; }; output: import("./types.js").SessionsCreateReturn; meta: object; }>; send: import("@trpc/server").TRPCMutationProcedure<{ input: { sessionId: string; text: string; attachments?: { name: string; path: string; size: number; mimeType: string; type: "file" | "image" | "video"; }[]; }; output: import("./types.js").SessionsSendReturn; meta: object; }>; cancel: import("@trpc/server").TRPCMutationProcedure<{ input: { sessionId: string; }; output: import("./types.js").SessionsCancelReturn; meta: object; }>; compact: import("@trpc/server").TRPCMutationProcedure<{ input: { sessionId: string; }; output: import("./types.js").SessionsCompactReturn; meta: object; }>; setProfile: import("@trpc/server").TRPCMutationProcedure<{ input: { sessionId: string; profileName: string; }; output: import("./types.js").SessionsSetProfileReturn; meta: object; }>; createAndSend: import("@trpc/server").TRPCMutationProcedure<{ input: { projectId: string; text: string; profileName?: string; draftUploadId?: string; attachments?: { name: string; path: string; size: number; mimeType: string; type: "file" | "image" | "video"; }[]; }; output: import("./types.js").SessionsCreateAndSendReturn; meta: object; }>; markRead: import("@trpc/server").TRPCMutationProcedure<{ input: { sessionId: string; }; output: void; meta: object; }>; answerQuestion: import("@trpc/server").TRPCMutationProcedure<{ input: { requestId: string; answers: Record; }; output: import("./types.js").SessionsInteractionMutateReturn; meta: object; }>; respondPlan: import("@trpc/server").TRPCMutationProcedure<{ input: { requestId: string; approved: boolean; feedback?: string; }; output: import("./types.js").SessionsInteractionMutateReturn; meta: object; }>; cancelResume: import("@trpc/server").TRPCMutationProcedure<{ input: { sessionId: string; }; output: import("./types.js").SessionsCancelResumeReturn; meta: object; }>; rewind: import("@trpc/server").TRPCMutationProcedure<{ input: { sessionId: string; turnIndex: number; text: string; }; output: import("./types.js").SessionsRewindReturn; meta: object; }>; }>>; threads: import("@trpc/server").TRPCBuiltRouter<{ ctx: object; meta: object; errorShape: import("@trpc/server").TRPCDefaultErrorShape; transformer: false; }, import("@trpc/server").TRPCDecorateCreateRouterOptions<{ list: import("@trpc/server").TRPCQueryProcedure<{ input: { projectId?: string; status?: string[]; sessionId?: string; }; output: import("./types.js").ThreadInfo[]; meta: object; }>; get: import("@trpc/server").TRPCQueryProcedure<{ input: { threadId: string; includeArtifactContent?: boolean; }; output: import("./types.js").ThreadDetail; meta: object; }>; cancel: import("@trpc/server").TRPCMutationProcedure<{ input: { threadId: string; }; output: import("./types.js").ThreadsCancelReturn; meta: object; }>; }>>; tasks: import("@trpc/server").TRPCBuiltRouter<{ ctx: object; meta: object; errorShape: import("@trpc/server").TRPCDefaultErrorShape; transformer: false; }, import("@trpc/server").TRPCDecorateCreateRouterOptions<{ list: import("@trpc/server").TRPCQueryProcedure<{ input: { projectId?: string; status?: "open" | "done"; actionable?: boolean; }; output: import("./types.js").TaskInfo[]; meta: object; }>; verification: import("@trpc/server").TRPCQueryProcedure<{ input: { projectId: string; taskId: string; }; output: import("./types.js").TaskVerificationInfo; meta: object; }>; claim: import("@trpc/server").TRPCMutationProcedure<{ input: { projectId: string; taskId: string; }; output: void; meta: object; }>; unclaim: import("@trpc/server").TRPCMutationProcedure<{ input: { projectId: string; taskId: string; }; output: void; meta: object; }>; complete: import("@trpc/server").TRPCMutationProcedure<{ input: { projectId: string; taskId: string; note?: string; }; output: void; meta: object; }>; block: import("@trpc/server").TRPCMutationProcedure<{ input: { projectId: string; taskId: string; reason: string; }; output: void; meta: object; }>; unblock: import("@trpc/server").TRPCMutationProcedure<{ input: { projectId: string; taskId: string; }; output: void; meta: object; }>; }>>; schedules: import("@trpc/server").TRPCBuiltRouter<{ ctx: object; meta: object; errorShape: import("@trpc/server").TRPCDefaultErrorShape; transformer: false; }, import("@trpc/server").TRPCDecorateCreateRouterOptions<{ list: import("@trpc/server").TRPCQueryProcedure<{ input: { projectId?: string; paused?: boolean; }; output: import("./types.js").ScheduleInfo[]; meta: object; }>; pause: import("@trpc/server").TRPCMutationProcedure<{ input: { scheduleId: string; }; output: void; meta: object; }>; resume: import("@trpc/server").TRPCMutationProcedure<{ input: { scheduleId: string; }; output: void; meta: object; }>; remove: import("@trpc/server").TRPCMutationProcedure<{ input: { scheduleId: string; }; output: void; meta: object; }>; add: import("@trpc/server").TRPCMutationProcedure<{ input: { type: "once" | "interval" | "daily" | "weekly"; message: string; projectId?: string; profile?: string; intervalMs?: number; time?: string; dayOfWeek?: number; delay?: number; target?: { kind: "fresh"; } | { kind: "project"; projectId: string; } | { kind: "thread"; threadId: string; channel: string; }; fallback?: "fresh" | "skip" | "wait"; }; output: import("./types.js").ScheduleInfo; meta: object; }>; update: import("@trpc/server").TRPCMutationProcedure<{ input: { scheduleId: string; message?: string; projectId?: string; profile?: string; intervalMs?: number; time?: string; dayOfWeek?: number; }; output: import("./types.js").ScheduleInfo; meta: object; }>; }>>; executions: import("@trpc/server").TRPCBuiltRouter<{ ctx: object; meta: object; errorShape: import("@trpc/server").TRPCDefaultErrorShape; transformer: false; }, import("@trpc/server").TRPCDecorateCreateRouterOptions<{ list: import("@trpc/server").TRPCQueryProcedure<{ input: { status?: string[]; limit?: number; }; output: import("./types.js").ExecutionInfo[]; meta: object; }>; get: import("@trpc/server").TRPCQueryProcedure<{ input: { executionId: string; }; output: import("./types.js").ExecutionDetailInfo; meta: object; }>; cancel: import("@trpc/server").TRPCMutationProcedure<{ input: { executionId: string; }; output: import("./types.js").ExecutionsCancelReturn; meta: object; }>; log: import("@trpc/server").TRPCSubscriptionProcedure<{ input: { executionId: string; }; output: AsyncIterable; meta: object; }>; }>>; memory: import("@trpc/server").TRPCBuiltRouter<{ ctx: object; meta: object; errorShape: import("@trpc/server").TRPCDefaultErrorShape; transformer: false; }, import("@trpc/server").TRPCDecorateCreateRouterOptions<{ tree: import("@trpc/server").TRPCQueryProcedure<{ input: { projectId: string; }; output: import("./types.js").MemoryTree; meta: object; }>; file: import("@trpc/server").TRPCQueryProcedure<{ input: { projectId: string; path: string; }; output: import("./types.js").MemoryFile; meta: object; }>; }>>; approvals: import("@trpc/server").TRPCBuiltRouter<{ ctx: object; meta: object; errorShape: import("@trpc/server").TRPCDefaultErrorShape; transformer: false; }, import("@trpc/server").TRPCDecorateCreateRouterOptions<{ list: import("@trpc/server").TRPCQueryProcedure<{ input: { status?: "pending" | "approved" | "rejected" | "failed"; }; output: import("./types.js").ApprovalInfo[]; meta: object; }>; approve: import("@trpc/server").TRPCMutationProcedure<{ input: { id: string; }; output: import("./types.js").ApprovalMutateReturn; meta: object; }>; reject: import("@trpc/server").TRPCMutationProcedure<{ input: { id: string; feedback?: string; }; output: import("./types.js").ApprovalMutateReturn; meta: object; }>; request: import("@trpc/server").TRPCMutationProcedure<{ input: { kind: "reconnect-platform" | "add-machine"; platform?: "slack" | "feishu"; machineName?: string; }; output: import("./types.js").ApprovalsRequestReturn; meta: object; }>; }>>; issues: import("@trpc/server").TRPCBuiltRouter<{ ctx: object; meta: object; errorShape: import("@trpc/server").TRPCDefaultErrorShape; transformer: false; }, import("@trpc/server").TRPCDecorateCreateRouterOptions<{ list: import("@trpc/server").TRPCQueryProcedure<{ input: { projectId: string; }; output: import("./types.js").IssueInfo[]; meta: object; }>; handle: import("@trpc/server").TRPCMutationProcedure<{ input: { projectId: string; id: string; }; output: import("./types.js").IssuesHandleReturn; meta: object; }>; delete: import("@trpc/server").TRPCMutationProcedure<{ input: { projectId: string; id: string; }; output: import("./types.js").IssuesDeleteReturn; meta: object; }>; }>>; notes: import("@trpc/server").TRPCBuiltRouter<{ ctx: object; meta: object; errorShape: import("@trpc/server").TRPCDefaultErrorShape; transformer: false; }, import("@trpc/server").TRPCDecorateCreateRouterOptions<{ list: import("@trpc/server").TRPCQueryProcedure<{ input: { projectId: string; }; output: import("../../store/project-notes-repo.js").ProjectNote[]; meta: object; }>; add: import("@trpc/server").TRPCMutationProcedure<{ input: { projectId: string; text: string; }; output: import("../../store/project-notes-repo.js").ProjectNote; meta: object; }>; update: import("@trpc/server").TRPCMutationProcedure<{ input: { projectId: string; text: string; id: string; }; output: import("../../store/project-notes-repo.js").ProjectNote; meta: object; }>; setCompleted: import("@trpc/server").TRPCMutationProcedure<{ input: { projectId: string; id: string; completed: boolean; }; output: import("../../store/project-notes-repo.js").ProjectNote; meta: object; }>; delete: import("@trpc/server").TRPCMutationProcedure<{ input: { projectId: string; id: string; }; output: import("./types.js").NotesDeleteReturn; meta: object; }>; clearCompleted: import("@trpc/server").TRPCMutationProcedure<{ input: { projectId: string; }; output: import("./types.js").NotesClearCompletedReturn; meta: object; }>; }>>; cost: import("@trpc/server").TRPCBuiltRouter<{ ctx: object; meta: object; errorShape: import("@trpc/server").TRPCDefaultErrorShape; transformer: false; }, import("@trpc/server").TRPCDecorateCreateRouterOptions<{ summary: import("@trpc/server").TRPCQueryProcedure<{ input: { projectId?: string; }; output: import("../costs/cost-tracker.js").CostSummary; meta: object; }>; }>>; config: import("@trpc/server").TRPCBuiltRouter<{ ctx: object; meta: object; errorShape: import("@trpc/server").TRPCDefaultErrorShape; transformer: false; }, import("@trpc/server").TRPCDecorateCreateRouterOptions<{ get: import("@trpc/server").TRPCQueryProcedure<{ input: Record; output: import("./types.js").ConfigSnapshot; meta: object; }>; set: import("@trpc/server").TRPCMutationProcedure<{ input: { section: "budget"; project?: string; value?: { daily_usd: number; monthly_usd: number; }; } | { section: "profiles"; value: { defaultProfile: string; }; } | { section: "settings"; value: { turnNotify?: boolean; turnNotifyThresholdS?: number; notifyCompaction?: boolean; showToolCalls?: boolean; statusNewqButton?: boolean; autoResume?: boolean; streamDeltas?: boolean; bgContinuation?: boolean; eventLog?: boolean; diskMonitor?: boolean; disableUserContext?: boolean; serverUpdateDisable?: boolean; hooksLegacy?: boolean; managerRotateSteps?: number; waitingSweepMs?: number; injectWaitMaxS?: number; threadMaxDepth?: number; taskArtifactTemplates?: string[]; taskDispatchMaxConcurrent?: number; uiCorsOrigins?: string[]; adminChannel?: string; feishuAdminChannel?: string; }; }; output: import("./types.js").ConfigSetReturn; meta: object; }>; }>>; profiles: import("@trpc/server").TRPCBuiltRouter<{ ctx: object; meta: object; errorShape: import("@trpc/server").TRPCDefaultErrorShape; transformer: false; }, import("@trpc/server").TRPCDecorateCreateRouterOptions<{ create: import("@trpc/server").TRPCMutationProcedure<{ input: { model: string; name: string; backend?: "claude" | "pi"; mode?: string; provider?: string; thinking?: string; claudeBackend?: "print" | "tui"; extraOption?: Record; }; output: import("./types.js").ProfilesCreateReturn; meta: object; }>; update: import("@trpc/server").TRPCMutationProcedure<{ input: { model: string; name: string; backend?: "claude" | "pi"; mode?: string; provider?: string; thinking?: string; claudeBackend?: "print" | "tui"; extraOption?: Record; }; output: import("./types.js").ProfilesUpdateReturn; meta: object; }>; remove: import("@trpc/server").TRPCMutationProcedure<{ input: { name: string; }; output: import("./types.js").ProfilesRemoveReturn; meta: object; }>; }>>; auth: import("@trpc/server").TRPCBuiltRouter<{ ctx: object; meta: object; errorShape: import("@trpc/server").TRPCDefaultErrorShape; transformer: false; }, import("@trpc/server").TRPCDecorateCreateRouterOptions<{ status: import("@trpc/server").TRPCQueryProcedure<{ input: Record; output: import("./types.js").AuthStatusSnapshot; meta: object; }>; flowState: import("@trpc/server").TRPCQueryProcedure<{ input: { flowId: string; }; output: import("./types.js").LoginFlowState; meta: object; }>; startLogin: import("@trpc/server").TRPCMutationProcedure<{ input: { backend: "claude" | "pi"; provider: string; authType: "oauth" | "api_key"; noticeId?: string; }; output: import("./types.js").LoginFlowState; meta: object; }>; respondPrompt: import("@trpc/server").TRPCMutationProcedure<{ input: { flowId: string; value: string; }; output: import("./types.js").LoginFlowState; meta: object; }>; cancelFlow: import("@trpc/server").TRPCMutationProcedure<{ input: { flowId: string; }; output: import("./types.js").LoginFlowState; meta: object; }>; logout: import("@trpc/server").TRPCMutationProcedure<{ input: { backend: "claude" | "pi"; provider: string; authType: "oauth" | "api_key"; }; output: import("../auth/logout.js").AuthLogoutSuccess; meta: object; }>; customProviders: import("@trpc/server").TRPCQueryProcedure<{ input: Record; output: import("./types.js").CustomProviderView[]; meta: object; }>; upsertCustomProvider: import("@trpc/server").TRPCMutationProcedure<{ input: { name: string; api: "anthropic-messages" | "openai-responses" | "openai-completions" | "google-generative-ai"; upstreamUrl: string; models: { id: string; contextWindow?: number; maxTokens?: number; reasoning?: boolean; }[]; apiKey?: string; headers?: Record; compat?: Record; }; output: import("./types.js").CustomProviderView; meta: object; }>; removeCustomProvider: import("@trpc/server").TRPCMutationProcedure<{ input: { name: string; }; output: import("./types.js").AuthRemoveCustomProviderReturn; meta: object; }>; }>>; hooks: import("@trpc/server").TRPCBuiltRouter<{ ctx: object; meta: object; errorShape: import("@trpc/server").TRPCDefaultErrorShape; transformer: false; }, import("@trpc/server").TRPCDecorateCreateRouterOptions<{ list: import("@trpc/server").TRPCQueryProcedure<{ input: Record; output: import("./types.js").HooksOverview; meta: object; }>; create: import("@trpc/server").TRPCMutationProcedure<{ input: { event: string; id: string; matcher?: string; matcherFilters?: Record; script?: string; command?: string; timeoutSec?: number; backends?: ("claude" | "pi")[]; requiresTool?: string; result?: "none" | "hook-result" | "stdout-as-prompt"; enabled?: boolean; }; output: import("./types.js").HooksCreateReturn; meta: object; }>; update: import("@trpc/server").TRPCMutationProcedure<{ input: { event: string; id: string; matcher?: string; matcherFilters?: Record; script?: string; command?: string; timeoutSec?: number; backends?: ("claude" | "pi")[]; requiresTool?: string; result?: "none" | "hook-result" | "stdout-as-prompt"; enabled?: boolean; }; output: import("./types.js").HooksUpdateReturn; meta: object; }>; setEnabled: import("@trpc/server").TRPCMutationProcedure<{ input: { id: string; enabled: boolean; }; output: import("./types.js").HooksSetEnabledReturn; meta: object; }>; remove: import("@trpc/server").TRPCMutationProcedure<{ input: { id: string; }; output: import("./types.js").HooksRemoveReturn; meta: object; }>; test: import("@trpc/server").TRPCMutationProcedure<{ input: { id: string; payload: string; }; output: import("./types.js").HooksTestReturn; meta: object; }>; }>>; machines: import("@trpc/server").TRPCBuiltRouter<{ ctx: object; meta: object; errorShape: import("@trpc/server").TRPCDefaultErrorShape; transformer: false; }, import("@trpc/server").TRPCDecorateCreateRouterOptions<{ list: import("@trpc/server").TRPCQueryProcedure<{ input: Record; output: import("./types.js").MachineInfo[]; meta: object; }>; detail: import("@trpc/server").TRPCQueryProcedure<{ input: { machine: string; }; output: import("./types.js").MachineDetail; meta: object; }>; }>>; skills: import("@trpc/server").TRPCBuiltRouter<{ ctx: object; meta: object; errorShape: import("@trpc/server").TRPCDefaultErrorShape; transformer: false; }, import("@trpc/server").TRPCDecorateCreateRouterOptions<{ list: import("@trpc/server").TRPCQueryProcedure<{ input: Record; output: import("./types.js").SkillGroup[]; meta: object; }>; }>>; threadTemplates: import("@trpc/server").TRPCBuiltRouter<{ ctx: object; meta: object; errorShape: import("@trpc/server").TRPCDefaultErrorShape; transformer: false; }, import("@trpc/server").TRPCDecorateCreateRouterOptions<{ get: import("@trpc/server").TRPCQueryProcedure<{ input: Record; output: import("./types.js").ThreadTemplateEntry[]; meta: object; }>; detail: import("@trpc/server").TRPCQueryProcedure<{ input: { kind: "template" | "agent" | "shell"; name: string; }; output: import("./types.js").ThreadTemplateDetail; meta: object; }>; validate: import("@trpc/server").TRPCMutationProcedure<{ input: { kind: "template" | "agent" | "shell"; name: string; body: Record; }; output: import("./types.js").ThreadTemplatesValidateReturn; meta: object; }>; save: import("@trpc/server").TRPCMutationProcedure<{ input: { kind: "template" | "agent" | "shell"; name: string; body: Record; baseHash?: string; }; output: import("./types.js").ThreadTemplatesSaveReturn; meta: object; }>; remove: import("@trpc/server").TRPCMutationProcedure<{ input: { kind: "template" | "agent" | "shell"; name: string; }; output: import("./types.js").ThreadTemplatesRemoveReturn; meta: object; }>; }>>; system: import("@trpc/server").TRPCBuiltRouter<{ ctx: object; meta: object; errorShape: import("@trpc/server").TRPCDefaultErrorShape; transformer: false; }, import("@trpc/server").TRPCDecorateCreateRouterOptions<{ daemonStatus: import("@trpc/server").TRPCQueryProcedure<{ input: Record; output: import("./types.js").SystemDaemonStatus; meta: object; }>; rateLimitStatus: import("@trpc/server").TRPCQueryProcedure<{ input: Record; output: import("./types.js").SystemRateLimitStatus; meta: object; }>; restart: import("@trpc/server").TRPCMutationProcedure<{ input: { kind: "force" | "soft" | "hard"; }; output: import("./types.js").SystemRestartReturn; meta: object; }>; clearRateLimit: import("@trpc/server").TRPCMutationProcedure<{ input: { provider?: string; }; output: import("./types.js").SystemClearRateLimitReturn; meta: object; }>; }>>; subscribe: import("@trpc/server").TRPCSubscriptionProcedure<{ input: { events: string[]; projectId?: string; sessionId?: string; }; output: AsyncIterable; meta: object; }>; }>>; export type AppRouter = ReturnType;