import type { inferRouterInputs, inferRouterOutputs } from "@trpc/server";
import type { RuntimeCommandRunRequest, RuntimeCommandRunResponse, RuntimeConfigResponse, RuntimeConfigSaveRequest, RuntimeClineOauthLoginRequest, RuntimeClineOauthLoginResponse, RuntimeClineAccountProfileResponse, RuntimeClineKanbanAccessResponse, RuntimeClineMcpAuthStatusResponse, RuntimeClineMcpOAuthRequest, RuntimeClineMcpOAuthResponse, RuntimeClineMcpSettingsResponse, RuntimeClineMcpSettingsSaveRequest, RuntimeClineMcpSettingsSaveResponse, RuntimeClineProviderCatalogResponse, RuntimeClineProviderModelsRequest, RuntimeClineProviderModelsResponse, RuntimeClineProviderSettingsSaveRequest, RuntimeClineProviderSettingsSaveResponse, RuntimeDebugResetAllStateResponse, RuntimeOpenFileRequest, RuntimeOpenFileResponse, RuntimeGitCheckoutRequest, RuntimeGitCheckoutResponse, RuntimeGitCommitDiffRequest, RuntimeGitCommitDiffResponse, RuntimeGitDiscardResponse, RuntimeGitLogRequest, RuntimeGitLogResponse, RuntimeGitRefsResponse, RuntimeGitSummaryResponse, RuntimeGitSyncAction, RuntimeGitSyncResponse, RuntimeHookIngestRequest, RuntimeHookIngestResponse, RuntimeProjectAddRequest, RuntimeProjectAddResponse, RuntimeProjectDirectoryPickerResponse, RuntimeProjectRemoveRequest, RuntimeProjectRemoveResponse, RuntimeProjectsResponse, RuntimeSlashCommandsResponse, RuntimeShellSessionStartRequest, RuntimeShellSessionStartResponse, RuntimeTaskChatMessagesRequest, RuntimeTaskChatMessagesResponse, RuntimeTaskChatAbortRequest, RuntimeTaskChatAbortResponse, RuntimeTaskChatCancelRequest, RuntimeTaskChatCancelResponse, RuntimeTaskChatSendRequest, RuntimeTaskChatSendResponse, RuntimeTaskSessionInputRequest, RuntimeTaskSessionInputResponse, RuntimeTaskSessionStartRequest, RuntimeTaskSessionStartResponse, RuntimeTaskSessionStopRequest, RuntimeTaskSessionStopResponse, RuntimeTaskWorkspaceInfoRequest, RuntimeTaskWorkspaceInfoResponse, RuntimeWorkspaceChangesRequest, RuntimeWorkspaceChangesResponse, RuntimeWorkspaceFileSearchRequest, RuntimeWorkspaceFileSearchResponse, RuntimeWorkspaceStateResponse, RuntimeWorkspaceStateNotifyResponse, RuntimeWorkspaceStateSaveRequest, RuntimeWorktreeDeleteRequest, RuntimeWorktreeDeleteResponse, RuntimeWorktreeEnsureRequest, RuntimeWorktreeEnsureResponse } from "../core/api-contract.js";
export interface RuntimeTrpcWorkspaceScope {
    workspaceId: string;
    workspacePath: string;
}
export interface RuntimeTrpcContext {
    requestedWorkspaceId: string | null;
    workspaceScope: RuntimeTrpcWorkspaceScope | null;
    runtimeApi: {
        loadConfig: (scope: RuntimeTrpcWorkspaceScope | null) => Promise<RuntimeConfigResponse>;
        saveConfig: (scope: RuntimeTrpcWorkspaceScope | null, input: RuntimeConfigSaveRequest) => Promise<RuntimeConfigResponse>;
        saveClineProviderSettings: (scope: RuntimeTrpcWorkspaceScope | null, input: RuntimeClineProviderSettingsSaveRequest) => Promise<RuntimeClineProviderSettingsSaveResponse>;
        startTaskSession: (scope: RuntimeTrpcWorkspaceScope, input: RuntimeTaskSessionStartRequest) => Promise<RuntimeTaskSessionStartResponse>;
        stopTaskSession: (scope: RuntimeTrpcWorkspaceScope, input: RuntimeTaskSessionStopRequest) => Promise<RuntimeTaskSessionStopResponse>;
        sendTaskSessionInput: (scope: RuntimeTrpcWorkspaceScope, input: RuntimeTaskSessionInputRequest) => Promise<RuntimeTaskSessionInputResponse>;
        getTaskChatMessages: (scope: RuntimeTrpcWorkspaceScope, input: RuntimeTaskChatMessagesRequest) => Promise<RuntimeTaskChatMessagesResponse>;
        getClineSlashCommands: (scope: RuntimeTrpcWorkspaceScope | null) => Promise<RuntimeSlashCommandsResponse>;
        sendTaskChatMessage: (scope: RuntimeTrpcWorkspaceScope, input: RuntimeTaskChatSendRequest) => Promise<RuntimeTaskChatSendResponse>;
        abortTaskChatTurn: (scope: RuntimeTrpcWorkspaceScope, input: RuntimeTaskChatAbortRequest) => Promise<RuntimeTaskChatAbortResponse>;
        cancelTaskChatTurn: (scope: RuntimeTrpcWorkspaceScope, input: RuntimeTaskChatCancelRequest) => Promise<RuntimeTaskChatCancelResponse>;
        getClineProviderCatalog: (scope: RuntimeTrpcWorkspaceScope | null) => Promise<RuntimeClineProviderCatalogResponse>;
        getClineAccountProfile: (scope: RuntimeTrpcWorkspaceScope | null) => Promise<RuntimeClineAccountProfileResponse>;
        getClineKanbanAccess: (scope: RuntimeTrpcWorkspaceScope | null) => Promise<RuntimeClineKanbanAccessResponse>;
        getClineProviderModels: (scope: RuntimeTrpcWorkspaceScope | null, input: RuntimeClineProviderModelsRequest) => Promise<RuntimeClineProviderModelsResponse>;
        runClineProviderOAuthLogin: (scope: RuntimeTrpcWorkspaceScope | null, input: RuntimeClineOauthLoginRequest) => Promise<RuntimeClineOauthLoginResponse>;
        getClineMcpAuthStatuses: (scope: RuntimeTrpcWorkspaceScope | null) => Promise<RuntimeClineMcpAuthStatusResponse>;
        runClineMcpServerOAuth: (scope: RuntimeTrpcWorkspaceScope | null, input: RuntimeClineMcpOAuthRequest) => Promise<RuntimeClineMcpOAuthResponse>;
        getClineMcpSettings: (scope: RuntimeTrpcWorkspaceScope | null) => Promise<RuntimeClineMcpSettingsResponse>;
        saveClineMcpSettings: (scope: RuntimeTrpcWorkspaceScope | null, input: RuntimeClineMcpSettingsSaveRequest) => Promise<RuntimeClineMcpSettingsSaveResponse>;
        startShellSession: (scope: RuntimeTrpcWorkspaceScope, input: RuntimeShellSessionStartRequest) => Promise<RuntimeShellSessionStartResponse>;
        runCommand: (scope: RuntimeTrpcWorkspaceScope, input: RuntimeCommandRunRequest) => Promise<RuntimeCommandRunResponse>;
        resetAllState: (scope: RuntimeTrpcWorkspaceScope | null) => Promise<RuntimeDebugResetAllStateResponse>;
        openFile: (input: RuntimeOpenFileRequest) => Promise<RuntimeOpenFileResponse>;
    };
    workspaceApi: {
        loadGitSummary: (scope: RuntimeTrpcWorkspaceScope, input: RuntimeTaskWorkspaceInfoRequest | null) => Promise<RuntimeGitSummaryResponse>;
        runGitSyncAction: (scope: RuntimeTrpcWorkspaceScope, input: {
            action: RuntimeGitSyncAction;
        }) => Promise<RuntimeGitSyncResponse>;
        checkoutGitBranch: (scope: RuntimeTrpcWorkspaceScope, input: RuntimeGitCheckoutRequest) => Promise<RuntimeGitCheckoutResponse>;
        discardGitChanges: (scope: RuntimeTrpcWorkspaceScope, input: RuntimeTaskWorkspaceInfoRequest | null) => Promise<RuntimeGitDiscardResponse>;
        loadChanges: (scope: RuntimeTrpcWorkspaceScope, input: RuntimeWorkspaceChangesRequest) => Promise<RuntimeWorkspaceChangesResponse>;
        ensureWorktree: (scope: RuntimeTrpcWorkspaceScope, input: RuntimeWorktreeEnsureRequest) => Promise<RuntimeWorktreeEnsureResponse>;
        deleteWorktree: (scope: RuntimeTrpcWorkspaceScope, input: RuntimeWorktreeDeleteRequest) => Promise<RuntimeWorktreeDeleteResponse>;
        loadTaskContext: (scope: RuntimeTrpcWorkspaceScope, input: RuntimeTaskWorkspaceInfoRequest) => Promise<RuntimeTaskWorkspaceInfoResponse>;
        searchFiles: (scope: RuntimeTrpcWorkspaceScope, input: RuntimeWorkspaceFileSearchRequest) => Promise<RuntimeWorkspaceFileSearchResponse>;
        loadState: (scope: RuntimeTrpcWorkspaceScope) => Promise<RuntimeWorkspaceStateResponse>;
        notifyStateUpdated: (scope: RuntimeTrpcWorkspaceScope) => Promise<RuntimeWorkspaceStateNotifyResponse>;
        saveState: (scope: RuntimeTrpcWorkspaceScope, input: RuntimeWorkspaceStateSaveRequest) => Promise<RuntimeWorkspaceStateResponse>;
        loadWorkspaceChanges: (scope: RuntimeTrpcWorkspaceScope) => Promise<RuntimeWorkspaceChangesResponse>;
        loadGitLog: (scope: RuntimeTrpcWorkspaceScope, input: RuntimeGitLogRequest) => Promise<RuntimeGitLogResponse>;
        loadGitRefs: (scope: RuntimeTrpcWorkspaceScope, input: RuntimeTaskWorkspaceInfoRequest | null) => Promise<RuntimeGitRefsResponse>;
        loadCommitDiff: (scope: RuntimeTrpcWorkspaceScope, input: RuntimeGitCommitDiffRequest) => Promise<RuntimeGitCommitDiffResponse>;
    };
    projectsApi: {
        listProjects: (preferredWorkspaceId: string | null) => Promise<RuntimeProjectsResponse>;
        addProject: (preferredWorkspaceId: string | null, input: RuntimeProjectAddRequest) => Promise<RuntimeProjectAddResponse>;
        removeProject: (preferredWorkspaceId: string | null, input: RuntimeProjectRemoveRequest) => Promise<RuntimeProjectRemoveResponse>;
        pickProjectDirectory: (preferredWorkspaceId: string | null) => Promise<RuntimeProjectDirectoryPickerResponse>;
    };
    hooksApi: {
        ingest: (input: RuntimeHookIngestRequest) => Promise<RuntimeHookIngestResponse>;
    };
}
export declare const runtimeAppRouter: import("@trpc/server").TRPCBuiltRouter<{
    ctx: RuntimeTrpcContext;
    meta: object;
    errorShape: {
        data: {
            conflictRevision: number | null;
            code: import("@trpc/server").TRPC_ERROR_CODE_KEY;
            httpStatus: number;
            path?: string;
            stack?: string;
        };
        message: string;
        code: import("@trpc/server").TRPC_ERROR_CODE_NUMBER;
    };
    transformer: false;
}, import("@trpc/server").TRPCDecorateCreateRouterOptions<{
    runtime: import("@trpc/server").TRPCBuiltRouter<{
        ctx: RuntimeTrpcContext;
        meta: object;
        errorShape: {
            data: {
                conflictRevision: number | null;
                code: import("@trpc/server").TRPC_ERROR_CODE_KEY;
                httpStatus: number;
                path?: string;
                stack?: string;
            };
            message: string;
            code: import("@trpc/server").TRPC_ERROR_CODE_NUMBER;
        };
        transformer: false;
    }, import("@trpc/server").TRPCDecorateCreateRouterOptions<{
        getConfig: import("@trpc/server").TRPCQueryProcedure<{
            input: void;
            output: {
                selectedAgentId: "claude" | "codex" | "gemini" | "opencode" | "droid" | "cline";
                selectedShortcutLabel: string | null;
                agentAutonomousModeEnabled: boolean;
                effectiveCommand: string | null;
                globalConfigPath: string;
                projectConfigPath: string | null;
                readyForReviewNotificationsEnabled: boolean;
                detectedCommands: string[];
                agents: {
                    id: "claude" | "codex" | "gemini" | "opencode" | "droid" | "cline";
                    label: string;
                    binary: string;
                    command: string;
                    defaultArgs: string[];
                    installed: boolean;
                    configured: boolean;
                }[];
                shortcuts: {
                    label: string;
                    command: string;
                    icon?: string | undefined;
                }[];
                clineProviderSettings: {
                    providerId: string | null;
                    modelId: string | null;
                    baseUrl: string | null;
                    apiKeyConfigured: boolean;
                    oauthProvider: "cline" | "oca" | "openai-codex" | null;
                    oauthAccessTokenConfigured: boolean;
                    oauthRefreshTokenConfigured: boolean;
                    oauthAccountId: string | null;
                    oauthExpiresAt: number | null;
                };
                commitPromptTemplate: string;
                openPrPromptTemplate: string;
                commitPromptTemplateDefault: string;
                openPrPromptTemplateDefault: string;
                debugModeEnabled?: boolean | undefined;
            };
            meta: object;
        }>;
        saveConfig: import("@trpc/server").TRPCMutationProcedure<{
            input: {
                selectedAgentId?: "claude" | "codex" | "gemini" | "opencode" | "droid" | "cline" | undefined;
                selectedShortcutLabel?: string | null | undefined;
                agentAutonomousModeEnabled?: boolean | undefined;
                shortcuts?: {
                    label: string;
                    command: string;
                    icon?: string | undefined;
                }[] | undefined;
                readyForReviewNotificationsEnabled?: boolean | undefined;
                commitPromptTemplate?: string | undefined;
                openPrPromptTemplate?: string | undefined;
            };
            output: {
                selectedAgentId: "claude" | "codex" | "gemini" | "opencode" | "droid" | "cline";
                selectedShortcutLabel: string | null;
                agentAutonomousModeEnabled: boolean;
                effectiveCommand: string | null;
                globalConfigPath: string;
                projectConfigPath: string | null;
                readyForReviewNotificationsEnabled: boolean;
                detectedCommands: string[];
                agents: {
                    id: "claude" | "codex" | "gemini" | "opencode" | "droid" | "cline";
                    label: string;
                    binary: string;
                    command: string;
                    defaultArgs: string[];
                    installed: boolean;
                    configured: boolean;
                }[];
                shortcuts: {
                    label: string;
                    command: string;
                    icon?: string | undefined;
                }[];
                clineProviderSettings: {
                    providerId: string | null;
                    modelId: string | null;
                    baseUrl: string | null;
                    apiKeyConfigured: boolean;
                    oauthProvider: "cline" | "oca" | "openai-codex" | null;
                    oauthAccessTokenConfigured: boolean;
                    oauthRefreshTokenConfigured: boolean;
                    oauthAccountId: string | null;
                    oauthExpiresAt: number | null;
                };
                commitPromptTemplate: string;
                openPrPromptTemplate: string;
                commitPromptTemplateDefault: string;
                openPrPromptTemplateDefault: string;
                debugModeEnabled?: boolean | undefined;
            };
            meta: object;
        }>;
        saveClineProviderSettings: import("@trpc/server").TRPCMutationProcedure<{
            input: {
                providerId: string;
                modelId?: string | null | undefined;
                apiKey?: string | null | undefined;
                baseUrl?: string | null | undefined;
            };
            output: {
                providerId: string | null;
                modelId: string | null;
                baseUrl: string | null;
                apiKeyConfigured: boolean;
                oauthProvider: "cline" | "oca" | "openai-codex" | null;
                oauthAccessTokenConfigured: boolean;
                oauthRefreshTokenConfigured: boolean;
                oauthAccountId: string | null;
                oauthExpiresAt: number | null;
            };
            meta: object;
        }>;
        startTaskSession: import("@trpc/server").TRPCMutationProcedure<{
            input: {
                taskId: string;
                prompt: string;
                baseRef: string;
                images?: {
                    id: string;
                    data: string;
                    mimeType: string;
                    name?: string | undefined;
                }[] | undefined;
                startInPlanMode?: boolean | undefined;
                mode?: "act" | "plan" | undefined;
                resumeFromTrash?: boolean | undefined;
                cols?: number | undefined;
                rows?: number | undefined;
            };
            output: {
                ok: boolean;
                summary: {
                    taskId: string;
                    state: "idle" | "running" | "awaiting_review" | "failed" | "interrupted";
                    agentId: "claude" | "codex" | "gemini" | "opencode" | "droid" | "cline" | null;
                    workspacePath: string | null;
                    pid: number | null;
                    startedAt: number | null;
                    updatedAt: number;
                    lastOutputAt: number | null;
                    reviewReason: "error" | "interrupted" | "attention" | "exit" | "hook" | null;
                    exitCode: number | null;
                    lastHookAt: number | null;
                    latestHookActivity: {
                        activityText: string | null;
                        toolName: string | null;
                        toolInputSummary: string | null;
                        finalMessage: string | null;
                        hookEventName: string | null;
                        notificationType: string | null;
                        source: string | null;
                    } | null;
                    mode?: "act" | "plan" | null | undefined;
                    warningMessage?: string | null | undefined;
                    latestTurnCheckpoint?: {
                        turn: number;
                        ref: string;
                        commit: string;
                        createdAt: number;
                    } | null | undefined;
                    previousTurnCheckpoint?: {
                        turn: number;
                        ref: string;
                        commit: string;
                        createdAt: number;
                    } | null | undefined;
                } | null;
                error?: string | undefined;
            };
            meta: object;
        }>;
        stopTaskSession: import("@trpc/server").TRPCMutationProcedure<{
            input: {
                taskId: string;
            };
            output: {
                ok: boolean;
                summary: {
                    taskId: string;
                    state: "idle" | "running" | "awaiting_review" | "failed" | "interrupted";
                    agentId: "claude" | "codex" | "gemini" | "opencode" | "droid" | "cline" | null;
                    workspacePath: string | null;
                    pid: number | null;
                    startedAt: number | null;
                    updatedAt: number;
                    lastOutputAt: number | null;
                    reviewReason: "error" | "interrupted" | "attention" | "exit" | "hook" | null;
                    exitCode: number | null;
                    lastHookAt: number | null;
                    latestHookActivity: {
                        activityText: string | null;
                        toolName: string | null;
                        toolInputSummary: string | null;
                        finalMessage: string | null;
                        hookEventName: string | null;
                        notificationType: string | null;
                        source: string | null;
                    } | null;
                    mode?: "act" | "plan" | null | undefined;
                    warningMessage?: string | null | undefined;
                    latestTurnCheckpoint?: {
                        turn: number;
                        ref: string;
                        commit: string;
                        createdAt: number;
                    } | null | undefined;
                    previousTurnCheckpoint?: {
                        turn: number;
                        ref: string;
                        commit: string;
                        createdAt: number;
                    } | null | undefined;
                } | null;
                error?: string | undefined;
            };
            meta: object;
        }>;
        sendTaskSessionInput: import("@trpc/server").TRPCMutationProcedure<{
            input: {
                taskId: string;
                text: string;
                appendNewline?: boolean | undefined;
            };
            output: {
                ok: boolean;
                summary: {
                    taskId: string;
                    state: "idle" | "running" | "awaiting_review" | "failed" | "interrupted";
                    agentId: "claude" | "codex" | "gemini" | "opencode" | "droid" | "cline" | null;
                    workspacePath: string | null;
                    pid: number | null;
                    startedAt: number | null;
                    updatedAt: number;
                    lastOutputAt: number | null;
                    reviewReason: "error" | "interrupted" | "attention" | "exit" | "hook" | null;
                    exitCode: number | null;
                    lastHookAt: number | null;
                    latestHookActivity: {
                        activityText: string | null;
                        toolName: string | null;
                        toolInputSummary: string | null;
                        finalMessage: string | null;
                        hookEventName: string | null;
                        notificationType: string | null;
                        source: string | null;
                    } | null;
                    mode?: "act" | "plan" | null | undefined;
                    warningMessage?: string | null | undefined;
                    latestTurnCheckpoint?: {
                        turn: number;
                        ref: string;
                        commit: string;
                        createdAt: number;
                    } | null | undefined;
                    previousTurnCheckpoint?: {
                        turn: number;
                        ref: string;
                        commit: string;
                        createdAt: number;
                    } | null | undefined;
                } | null;
                error?: string | undefined;
            };
            meta: object;
        }>;
        getTaskChatMessages: import("@trpc/server").TRPCQueryProcedure<{
            input: {
                taskId: string;
            };
            output: {
                ok: boolean;
                messages: {
                    id: string;
                    role: "user" | "status" | "assistant" | "system" | "tool" | "reasoning";
                    content: string;
                    createdAt: number;
                    images?: {
                        id: string;
                        data: string;
                        mimeType: string;
                        name?: string | undefined;
                    }[] | undefined;
                    meta?: {
                        toolName?: string | null | undefined;
                        hookEventName?: string | null | undefined;
                        toolCallId?: string | null | undefined;
                        streamType?: string | null | undefined;
                        messageKind?: string | null | undefined;
                        displayRole?: string | null | undefined;
                        reason?: string | null | undefined;
                    } | null | undefined;
                }[];
                error?: string | undefined;
            };
            meta: object;
        }>;
        getClineSlashCommands: import("@trpc/server").TRPCQueryProcedure<{
            input: void;
            output: {
                commands: {
                    name: string;
                    instructions: string;
                    description?: string | undefined;
                }[];
            };
            meta: object;
        }>;
        sendTaskChatMessage: import("@trpc/server").TRPCMutationProcedure<{
            input: {
                taskId: string;
                text: string;
                images?: {
                    id: string;
                    data: string;
                    mimeType: string;
                    name?: string | undefined;
                }[] | undefined;
                mode?: "act" | "plan" | undefined;
            };
            output: {
                ok: boolean;
                summary: {
                    taskId: string;
                    state: "idle" | "running" | "awaiting_review" | "failed" | "interrupted";
                    agentId: "claude" | "codex" | "gemini" | "opencode" | "droid" | "cline" | null;
                    workspacePath: string | null;
                    pid: number | null;
                    startedAt: number | null;
                    updatedAt: number;
                    lastOutputAt: number | null;
                    reviewReason: "error" | "interrupted" | "attention" | "exit" | "hook" | null;
                    exitCode: number | null;
                    lastHookAt: number | null;
                    latestHookActivity: {
                        activityText: string | null;
                        toolName: string | null;
                        toolInputSummary: string | null;
                        finalMessage: string | null;
                        hookEventName: string | null;
                        notificationType: string | null;
                        source: string | null;
                    } | null;
                    mode?: "act" | "plan" | null | undefined;
                    warningMessage?: string | null | undefined;
                    latestTurnCheckpoint?: {
                        turn: number;
                        ref: string;
                        commit: string;
                        createdAt: number;
                    } | null | undefined;
                    previousTurnCheckpoint?: {
                        turn: number;
                        ref: string;
                        commit: string;
                        createdAt: number;
                    } | null | undefined;
                } | null;
                message?: {
                    id: string;
                    role: "user" | "status" | "assistant" | "system" | "tool" | "reasoning";
                    content: string;
                    createdAt: number;
                    images?: {
                        id: string;
                        data: string;
                        mimeType: string;
                        name?: string | undefined;
                    }[] | undefined;
                    meta?: {
                        toolName?: string | null | undefined;
                        hookEventName?: string | null | undefined;
                        toolCallId?: string | null | undefined;
                        streamType?: string | null | undefined;
                        messageKind?: string | null | undefined;
                        displayRole?: string | null | undefined;
                        reason?: string | null | undefined;
                    } | null | undefined;
                } | null | undefined;
                error?: string | undefined;
            };
            meta: object;
        }>;
        abortTaskChatTurn: import("@trpc/server").TRPCMutationProcedure<{
            input: {
                taskId: string;
            };
            output: {
                ok: boolean;
                summary: {
                    taskId: string;
                    state: "idle" | "running" | "awaiting_review" | "failed" | "interrupted";
                    agentId: "claude" | "codex" | "gemini" | "opencode" | "droid" | "cline" | null;
                    workspacePath: string | null;
                    pid: number | null;
                    startedAt: number | null;
                    updatedAt: number;
                    lastOutputAt: number | null;
                    reviewReason: "error" | "interrupted" | "attention" | "exit" | "hook" | null;
                    exitCode: number | null;
                    lastHookAt: number | null;
                    latestHookActivity: {
                        activityText: string | null;
                        toolName: string | null;
                        toolInputSummary: string | null;
                        finalMessage: string | null;
                        hookEventName: string | null;
                        notificationType: string | null;
                        source: string | null;
                    } | null;
                    mode?: "act" | "plan" | null | undefined;
                    warningMessage?: string | null | undefined;
                    latestTurnCheckpoint?: {
                        turn: number;
                        ref: string;
                        commit: string;
                        createdAt: number;
                    } | null | undefined;
                    previousTurnCheckpoint?: {
                        turn: number;
                        ref: string;
                        commit: string;
                        createdAt: number;
                    } | null | undefined;
                } | null;
                error?: string | undefined;
            };
            meta: object;
        }>;
        cancelTaskChatTurn: import("@trpc/server").TRPCMutationProcedure<{
            input: {
                taskId: string;
            };
            output: {
                ok: boolean;
                summary: {
                    taskId: string;
                    state: "idle" | "running" | "awaiting_review" | "failed" | "interrupted";
                    agentId: "claude" | "codex" | "gemini" | "opencode" | "droid" | "cline" | null;
                    workspacePath: string | null;
                    pid: number | null;
                    startedAt: number | null;
                    updatedAt: number;
                    lastOutputAt: number | null;
                    reviewReason: "error" | "interrupted" | "attention" | "exit" | "hook" | null;
                    exitCode: number | null;
                    lastHookAt: number | null;
                    latestHookActivity: {
                        activityText: string | null;
                        toolName: string | null;
                        toolInputSummary: string | null;
                        finalMessage: string | null;
                        hookEventName: string | null;
                        notificationType: string | null;
                        source: string | null;
                    } | null;
                    mode?: "act" | "plan" | null | undefined;
                    warningMessage?: string | null | undefined;
                    latestTurnCheckpoint?: {
                        turn: number;
                        ref: string;
                        commit: string;
                        createdAt: number;
                    } | null | undefined;
                    previousTurnCheckpoint?: {
                        turn: number;
                        ref: string;
                        commit: string;
                        createdAt: number;
                    } | null | undefined;
                } | null;
                error?: string | undefined;
            };
            meta: object;
        }>;
        getClineProviderCatalog: import("@trpc/server").TRPCQueryProcedure<{
            input: void;
            output: {
                providers: {
                    id: string;
                    name: string;
                    oauthSupported: boolean;
                    enabled: boolean;
                    defaultModelId: string | null;
                }[];
            };
            meta: object;
        }>;
        getClineAccountProfile: import("@trpc/server").TRPCQueryProcedure<{
            input: void;
            output: {
                profile: {
                    accountId: string | null;
                    email: string | null;
                    displayName: string | null;
                } | null;
                error?: string | undefined;
            };
            meta: object;
        }>;
        getClineKanbanAccess: import("@trpc/server").TRPCQueryProcedure<{
            input: void;
            output: {
                enabled: boolean;
                error?: string | undefined;
            };
            meta: object;
        }>;
        getClineProviderModels: import("@trpc/server").TRPCQueryProcedure<{
            input: {
                providerId: string;
            };
            output: {
                providerId: string;
                models: {
                    id: string;
                    name: string;
                    supportsVision?: boolean | undefined;
                    supportsAttachments?: boolean | undefined;
                }[];
            };
            meta: object;
        }>;
        getClineMcpAuthStatuses: import("@trpc/server").TRPCQueryProcedure<{
            input: void;
            output: {
                statuses: {
                    serverName: string;
                    oauthSupported: boolean;
                    oauthConfigured: boolean;
                    lastError: string | null;
                    lastAuthenticatedAt: number | null;
                }[];
            };
            meta: object;
        }>;
        runClineMcpServerOAuth: import("@trpc/server").TRPCMutationProcedure<{
            input: {
                serverName: string;
            };
            output: {
                serverName: string;
                authorized: true;
                message: string;
            };
            meta: object;
        }>;
        getClineMcpSettings: import("@trpc/server").TRPCQueryProcedure<{
            input: void;
            output: {
                path: string;
                servers: ({
                    name: string;
                    disabled: boolean;
                    type: "stdio";
                    command: string;
                    args?: string[] | undefined;
                    cwd?: string | undefined;
                    env?: Record<string, string> | undefined;
                } | {
                    name: string;
                    disabled: boolean;
                    type: "sse";
                    url: string;
                    headers?: Record<string, string> | undefined;
                } | {
                    name: string;
                    disabled: boolean;
                    type: "streamableHttp";
                    url: string;
                    headers?: Record<string, string> | undefined;
                })[];
            };
            meta: object;
        }>;
        saveClineMcpSettings: import("@trpc/server").TRPCMutationProcedure<{
            input: {
                servers: ({
                    name: string;
                    disabled: boolean;
                    type: "stdio";
                    command: string;
                    args?: string[] | undefined;
                    cwd?: string | undefined;
                    env?: Record<string, string> | undefined;
                } | {
                    name: string;
                    disabled: boolean;
                    type: "sse";
                    url: string;
                    headers?: Record<string, string> | undefined;
                } | {
                    name: string;
                    disabled: boolean;
                    type: "streamableHttp";
                    url: string;
                    headers?: Record<string, string> | undefined;
                })[];
            };
            output: {
                path: string;
                servers: ({
                    name: string;
                    disabled: boolean;
                    type: "stdio";
                    command: string;
                    args?: string[] | undefined;
                    cwd?: string | undefined;
                    env?: Record<string, string> | undefined;
                } | {
                    name: string;
                    disabled: boolean;
                    type: "sse";
                    url: string;
                    headers?: Record<string, string> | undefined;
                } | {
                    name: string;
                    disabled: boolean;
                    type: "streamableHttp";
                    url: string;
                    headers?: Record<string, string> | undefined;
                })[];
            };
            meta: object;
        }>;
        runClineProviderOAuthLogin: import("@trpc/server").TRPCMutationProcedure<{
            input: {
                provider: "cline" | "oca" | "openai-codex";
                baseUrl?: string | null | undefined;
            };
            output: {
                ok: boolean;
                provider: "cline" | "oca" | "openai-codex";
                settings?: {
                    providerId: string | null;
                    modelId: string | null;
                    baseUrl: string | null;
                    apiKeyConfigured: boolean;
                    oauthProvider: "cline" | "oca" | "openai-codex" | null;
                    oauthAccessTokenConfigured: boolean;
                    oauthRefreshTokenConfigured: boolean;
                    oauthAccountId: string | null;
                    oauthExpiresAt: number | null;
                } | undefined;
                error?: string | undefined;
            };
            meta: object;
        }>;
        startShellSession: import("@trpc/server").TRPCMutationProcedure<{
            input: {
                taskId: string;
                baseRef: string;
                cols?: number | undefined;
                rows?: number | undefined;
                workspaceTaskId?: string | undefined;
            };
            output: {
                ok: boolean;
                summary: {
                    taskId: string;
                    state: "idle" | "running" | "awaiting_review" | "failed" | "interrupted";
                    agentId: "claude" | "codex" | "gemini" | "opencode" | "droid" | "cline" | null;
                    workspacePath: string | null;
                    pid: number | null;
                    startedAt: number | null;
                    updatedAt: number;
                    lastOutputAt: number | null;
                    reviewReason: "error" | "interrupted" | "attention" | "exit" | "hook" | null;
                    exitCode: number | null;
                    lastHookAt: number | null;
                    latestHookActivity: {
                        activityText: string | null;
                        toolName: string | null;
                        toolInputSummary: string | null;
                        finalMessage: string | null;
                        hookEventName: string | null;
                        notificationType: string | null;
                        source: string | null;
                    } | null;
                    mode?: "act" | "plan" | null | undefined;
                    warningMessage?: string | null | undefined;
                    latestTurnCheckpoint?: {
                        turn: number;
                        ref: string;
                        commit: string;
                        createdAt: number;
                    } | null | undefined;
                    previousTurnCheckpoint?: {
                        turn: number;
                        ref: string;
                        commit: string;
                        createdAt: number;
                    } | null | undefined;
                } | null;
                shellBinary?: string | null | undefined;
                error?: string | undefined;
            };
            meta: object;
        }>;
        runCommand: import("@trpc/server").TRPCMutationProcedure<{
            input: {
                command: string;
            };
            output: {
                exitCode: number;
                stdout: string;
                stderr: string;
                combinedOutput: string;
                durationMs: number;
            };
            meta: object;
        }>;
        resetAllState: import("@trpc/server").TRPCMutationProcedure<{
            input: void;
            output: {
                ok: boolean;
                clearedPaths: string[];
            };
            meta: object;
        }>;
        openFile: import("@trpc/server").TRPCMutationProcedure<{
            input: {
                filePath: string;
            };
            output: {
                ok: boolean;
            };
            meta: object;
        }>;
    }>>;
    workspace: import("@trpc/server").TRPCBuiltRouter<{
        ctx: RuntimeTrpcContext;
        meta: object;
        errorShape: {
            data: {
                conflictRevision: number | null;
                code: import("@trpc/server").TRPC_ERROR_CODE_KEY;
                httpStatus: number;
                path?: string;
                stack?: string;
            };
            message: string;
            code: import("@trpc/server").TRPC_ERROR_CODE_NUMBER;
        };
        transformer: false;
    }, import("@trpc/server").TRPCDecorateCreateRouterOptions<{
        getGitSummary: import("@trpc/server").TRPCQueryProcedure<{
            input: {
                taskId: string;
                baseRef: string;
            } | null | undefined;
            output: {
                ok: boolean;
                summary: {
                    currentBranch: string | null;
                    upstreamBranch: string | null;
                    changedFiles: number;
                    additions: number;
                    deletions: number;
                    aheadCount: number;
                    behindCount: number;
                };
                error?: string | undefined;
            };
            meta: object;
        }>;
        runGitSyncAction: import("@trpc/server").TRPCMutationProcedure<{
            input: {
                action: "fetch" | "pull" | "push";
            };
            output: {
                ok: boolean;
                action: "fetch" | "pull" | "push";
                summary: {
                    currentBranch: string | null;
                    upstreamBranch: string | null;
                    changedFiles: number;
                    additions: number;
                    deletions: number;
                    aheadCount: number;
                    behindCount: number;
                };
                output: string;
                error?: string | undefined;
            };
            meta: object;
        }>;
        checkoutGitBranch: import("@trpc/server").TRPCMutationProcedure<{
            input: {
                branch: string;
            };
            output: {
                ok: boolean;
                branch: string;
                summary: {
                    currentBranch: string | null;
                    upstreamBranch: string | null;
                    changedFiles: number;
                    additions: number;
                    deletions: number;
                    aheadCount: number;
                    behindCount: number;
                };
                output: string;
                error?: string | undefined;
            };
            meta: object;
        }>;
        discardGitChanges: import("@trpc/server").TRPCMutationProcedure<{
            input: {
                taskId: string;
                baseRef: string;
            } | null | undefined;
            output: {
                ok: boolean;
                summary: {
                    currentBranch: string | null;
                    upstreamBranch: string | null;
                    changedFiles: number;
                    additions: number;
                    deletions: number;
                    aheadCount: number;
                    behindCount: number;
                };
                output: string;
                error?: string | undefined;
            };
            meta: object;
        }>;
        getChanges: import("@trpc/server").TRPCQueryProcedure<{
            input: {
                taskId: string;
                baseRef: string;
                mode?: "working_copy" | "last_turn" | undefined;
            };
            output: {
                repoRoot: string;
                generatedAt: number;
                files: {
                    path: string;
                    status: "modified" | "added" | "deleted" | "renamed" | "copied" | "untracked" | "unknown";
                    additions: number;
                    deletions: number;
                    oldText: string | null;
                    newText: string | null;
                    previousPath?: string | undefined;
                }[];
            };
            meta: object;
        }>;
        ensureWorktree: import("@trpc/server").TRPCMutationProcedure<{
            input: {
                taskId: string;
                baseRef: string;
            };
            output: {
                ok: true;
                path: string;
                baseRef: string;
                baseCommit: string;
                warning?: string | undefined;
                error?: string | undefined;
            } | {
                ok: false;
                path: null;
                baseRef: string;
                baseCommit: null;
                error?: string | undefined;
            };
            meta: object;
        }>;
        deleteWorktree: import("@trpc/server").TRPCMutationProcedure<{
            input: {
                taskId: string;
            };
            output: {
                ok: boolean;
                removed: boolean;
                error?: string | undefined;
            };
            meta: object;
        }>;
        getTaskContext: import("@trpc/server").TRPCQueryProcedure<{
            input: {
                taskId: string;
                baseRef: string;
            };
            output: {
                taskId: string;
                path: string;
                exists: boolean;
                baseRef: string;
                branch: string | null;
                isDetached: boolean;
                headCommit: string | null;
            };
            meta: object;
        }>;
        searchFiles: import("@trpc/server").TRPCQueryProcedure<{
            input: {
                query: string;
                limit?: number | undefined;
            };
            output: {
                query: string;
                files: {
                    path: string;
                    name: string;
                    changed: boolean;
                }[];
            };
            meta: object;
        }>;
        getState: import("@trpc/server").TRPCQueryProcedure<{
            input: void;
            output: {
                repoPath: string;
                statePath: string;
                git: {
                    currentBranch: string | null;
                    defaultBranch: string | null;
                    branches: string[];
                };
                board: {
                    columns: {
                        id: "backlog" | "in_progress" | "review" | "trash";
                        title: string;
                        cards: {
                            id: string;
                            prompt: string;
                            startInPlanMode: boolean;
                            baseRef: string;
                            createdAt: number;
                            updatedAt: number;
                            autoReviewEnabled?: boolean | undefined;
                            autoReviewMode?: "commit" | "pr" | "move_to_trash" | undefined;
                            images?: {
                                id: string;
                                data: string;
                                mimeType: string;
                                name?: string | undefined;
                            }[] | undefined;
                        }[];
                    }[];
                    dependencies: {
                        id: string;
                        fromTaskId: string;
                        toTaskId: string;
                        createdAt: number;
                    }[];
                };
                sessions: Record<string, {
                    taskId: string;
                    state: "idle" | "running" | "awaiting_review" | "failed" | "interrupted";
                    agentId: "claude" | "codex" | "gemini" | "opencode" | "droid" | "cline" | null;
                    workspacePath: string | null;
                    pid: number | null;
                    startedAt: number | null;
                    updatedAt: number;
                    lastOutputAt: number | null;
                    reviewReason: "error" | "interrupted" | "attention" | "exit" | "hook" | null;
                    exitCode: number | null;
                    lastHookAt: number | null;
                    latestHookActivity: {
                        activityText: string | null;
                        toolName: string | null;
                        toolInputSummary: string | null;
                        finalMessage: string | null;
                        hookEventName: string | null;
                        notificationType: string | null;
                        source: string | null;
                    } | null;
                    mode?: "act" | "plan" | null | undefined;
                    warningMessage?: string | null | undefined;
                    latestTurnCheckpoint?: {
                        turn: number;
                        ref: string;
                        commit: string;
                        createdAt: number;
                    } | null | undefined;
                    previousTurnCheckpoint?: {
                        turn: number;
                        ref: string;
                        commit: string;
                        createdAt: number;
                    } | null | undefined;
                }>;
                revision: number;
            };
            meta: object;
        }>;
        notifyStateUpdated: import("@trpc/server").TRPCMutationProcedure<{
            input: void;
            output: {
                ok: boolean;
            };
            meta: object;
        }>;
        saveState: import("@trpc/server").TRPCMutationProcedure<{
            input: {
                board: {
                    columns: {
                        id: "backlog" | "in_progress" | "review" | "trash";
                        title: string;
                        cards: {
                            id: string;
                            prompt: string;
                            startInPlanMode: boolean;
                            baseRef: string;
                            createdAt: number;
                            updatedAt: number;
                            autoReviewEnabled?: boolean | undefined;
                            autoReviewMode?: "commit" | "pr" | "move_to_trash" | undefined;
                            images?: {
                                id: string;
                                data: string;
                                mimeType: string;
                                name?: string | undefined;
                            }[] | undefined;
                        }[];
                    }[];
                    dependencies?: {
                        id: string;
                        fromTaskId: string;
                        toTaskId: string;
                        createdAt: number;
                    }[] | undefined;
                };
                sessions: Record<string, {
                    taskId: string;
                    state: "idle" | "running" | "awaiting_review" | "failed" | "interrupted";
                    agentId: "claude" | "codex" | "gemini" | "opencode" | "droid" | "cline" | null;
                    workspacePath: string | null;
                    pid: number | null;
                    startedAt: number | null;
                    updatedAt: number;
                    lastOutputAt: number | null;
                    reviewReason: "error" | "interrupted" | "attention" | "exit" | "hook" | null;
                    exitCode: number | null;
                    mode?: "act" | "plan" | null | undefined;
                    lastHookAt?: number | null | undefined;
                    latestHookActivity?: {
                        activityText?: string | null | undefined;
                        toolName?: string | null | undefined;
                        toolInputSummary?: string | null | undefined;
                        finalMessage?: string | null | undefined;
                        hookEventName?: string | null | undefined;
                        notificationType?: string | null | undefined;
                        source?: string | null | undefined;
                    } | null | undefined;
                    warningMessage?: string | null | undefined;
                    latestTurnCheckpoint?: {
                        turn: number;
                        ref: string;
                        commit: string;
                        createdAt: number;
                    } | null | undefined;
                    previousTurnCheckpoint?: {
                        turn: number;
                        ref: string;
                        commit: string;
                        createdAt: number;
                    } | null | undefined;
                }>;
                expectedRevision?: number | undefined;
            };
            output: {
                repoPath: string;
                statePath: string;
                git: {
                    currentBranch: string | null;
                    defaultBranch: string | null;
                    branches: string[];
                };
                board: {
                    columns: {
                        id: "backlog" | "in_progress" | "review" | "trash";
                        title: string;
                        cards: {
                            id: string;
                            prompt: string;
                            startInPlanMode: boolean;
                            baseRef: string;
                            createdAt: number;
                            updatedAt: number;
                            autoReviewEnabled?: boolean | undefined;
                            autoReviewMode?: "commit" | "pr" | "move_to_trash" | undefined;
                            images?: {
                                id: string;
                                data: string;
                                mimeType: string;
                                name?: string | undefined;
                            }[] | undefined;
                        }[];
                    }[];
                    dependencies: {
                        id: string;
                        fromTaskId: string;
                        toTaskId: string;
                        createdAt: number;
                    }[];
                };
                sessions: Record<string, {
                    taskId: string;
                    state: "idle" | "running" | "awaiting_review" | "failed" | "interrupted";
                    agentId: "claude" | "codex" | "gemini" | "opencode" | "droid" | "cline" | null;
                    workspacePath: string | null;
                    pid: number | null;
                    startedAt: number | null;
                    updatedAt: number;
                    lastOutputAt: number | null;
                    reviewReason: "error" | "interrupted" | "attention" | "exit" | "hook" | null;
                    exitCode: number | null;
                    lastHookAt: number | null;
                    latestHookActivity: {
                        activityText: string | null;
                        toolName: string | null;
                        toolInputSummary: string | null;
                        finalMessage: string | null;
                        hookEventName: string | null;
                        notificationType: string | null;
                        source: string | null;
                    } | null;
                    mode?: "act" | "plan" | null | undefined;
                    warningMessage?: string | null | undefined;
                    latestTurnCheckpoint?: {
                        turn: number;
                        ref: string;
                        commit: string;
                        createdAt: number;
                    } | null | undefined;
                    previousTurnCheckpoint?: {
                        turn: number;
                        ref: string;
                        commit: string;
                        createdAt: number;
                    } | null | undefined;
                }>;
                revision: number;
            };
            meta: object;
        }>;
        getWorkspaceChanges: import("@trpc/server").TRPCQueryProcedure<{
            input: void;
            output: {
                repoRoot: string;
                generatedAt: number;
                files: {
                    path: string;
                    status: "modified" | "added" | "deleted" | "renamed" | "copied" | "untracked" | "unknown";
                    additions: number;
                    deletions: number;
                    oldText: string | null;
                    newText: string | null;
                    previousPath?: string | undefined;
                }[];
            };
            meta: object;
        }>;
        getGitLog: import("@trpc/server").TRPCQueryProcedure<{
            input: {
                ref?: string | null | undefined;
                refs?: string[] | undefined;
                maxCount?: number | undefined;
                skip?: number | undefined;
                taskScope?: {
                    taskId: string;
                    baseRef: string;
                } | null | undefined;
            };
            output: {
                ok: boolean;
                commits: {
                    hash: string;
                    shortHash: string;
                    authorName: string;
                    authorEmail: string;
                    date: string;
                    message: string;
                    parentHashes: string[];
                    relation?: "selected" | "upstream" | "shared" | undefined;
                }[];
                totalCount: number;
                error?: string | undefined;
            };
            meta: object;
        }>;
        getGitRefs: import("@trpc/server").TRPCQueryProcedure<{
            input: {
                taskId: string;
                baseRef: string;
            } | null | undefined;
            output: {
                ok: boolean;
                refs: {
                    name: string;
                    type: "branch" | "remote" | "detached";
                    hash: string;
                    isHead: boolean;
                    upstreamName?: string | undefined;
                    ahead?: number | undefined;
                    behind?: number | undefined;
                }[];
                error?: string | undefined;
            };
            meta: object;
        }>;
        getCommitDiff: import("@trpc/server").TRPCQueryProcedure<{
            input: {
                commitHash: string;
                taskScope?: {
                    taskId: string;
                    baseRef: string;
                } | null | undefined;
            };
            output: {
                ok: boolean;
                commitHash: string;
                files: {
                    path: string;
                    status: "modified" | "added" | "deleted" | "renamed";
                    additions: number;
                    deletions: number;
                    patch: string;
                    previousPath?: string | undefined;
                }[];
                error?: string | undefined;
            };
            meta: object;
        }>;
    }>>;
    projects: import("@trpc/server").TRPCBuiltRouter<{
        ctx: RuntimeTrpcContext;
        meta: object;
        errorShape: {
            data: {
                conflictRevision: number | null;
                code: import("@trpc/server").TRPC_ERROR_CODE_KEY;
                httpStatus: number;
                path?: string;
                stack?: string;
            };
            message: string;
            code: import("@trpc/server").TRPC_ERROR_CODE_NUMBER;
        };
        transformer: false;
    }, import("@trpc/server").TRPCDecorateCreateRouterOptions<{
        list: import("@trpc/server").TRPCQueryProcedure<{
            input: void;
            output: {
                currentProjectId: string | null;
                projects: {
                    id: string;
                    path: string;
                    name: string;
                    taskCounts: {
                        backlog: number;
                        in_progress: number;
                        review: number;
                        trash: number;
                    };
                }[];
            };
            meta: object;
        }>;
        add: import("@trpc/server").TRPCMutationProcedure<{
            input: {
                path: string;
                initializeGit?: boolean | undefined;
            };
            output: {
                ok: boolean;
                project: {
                    id: string;
                    path: string;
                    name: string;
                    taskCounts: {
                        backlog: number;
                        in_progress: number;
                        review: number;
                        trash: number;
                    };
                } | null;
                requiresGitInitialization?: boolean | undefined;
                error?: string | undefined;
            };
            meta: object;
        }>;
        remove: import("@trpc/server").TRPCMutationProcedure<{
            input: {
                projectId: string;
            };
            output: {
                ok: boolean;
                error?: string | undefined;
            };
            meta: object;
        }>;
        pickDirectory: import("@trpc/server").TRPCMutationProcedure<{
            input: void;
            output: {
                ok: boolean;
                path: string | null;
                error?: string | undefined;
            };
            meta: object;
        }>;
    }>>;
    hooks: import("@trpc/server").TRPCBuiltRouter<{
        ctx: RuntimeTrpcContext;
        meta: object;
        errorShape: {
            data: {
                conflictRevision: number | null;
                code: import("@trpc/server").TRPC_ERROR_CODE_KEY;
                httpStatus: number;
                path?: string;
                stack?: string;
            };
            message: string;
            code: import("@trpc/server").TRPC_ERROR_CODE_NUMBER;
        };
        transformer: false;
    }, import("@trpc/server").TRPCDecorateCreateRouterOptions<{
        ingest: import("@trpc/server").TRPCMutationProcedure<{
            input: {
                taskId: string;
                workspaceId: string;
                event: "to_review" | "to_in_progress" | "activity";
                metadata?: {
                    activityText?: string | null | undefined;
                    toolName?: string | null | undefined;
                    toolInputSummary?: string | null | undefined;
                    finalMessage?: string | null | undefined;
                    hookEventName?: string | null | undefined;
                    notificationType?: string | null | undefined;
                    source?: string | null | undefined;
                } | undefined;
            };
            output: {
                ok: boolean;
                error?: string | undefined;
            };
            meta: object;
        }>;
    }>>;
}>>;
export type RuntimeAppRouter = typeof runtimeAppRouter;
export type RuntimeAppRouterInputs = inferRouterInputs<RuntimeAppRouter>;
export type RuntimeAppRouterOutputs = inferRouterOutputs<RuntimeAppRouter>;
//# sourceMappingURL=app-router.d.ts.map