import type { Logger } from 'pino';
import { type AutopilotProfile } from '../../../core/approvals/index.js';
import type { WorkspaceDescriptor } from '../../../core/runtime/workspaces/index.js';
import type { HeddleServerContext } from '../../../server/types.js';
type WorkspaceScopedInput = {
    workspaceId?: string;
} | null | undefined;
export type ControlPlaneRequestWorkspace = {
    workspace: WorkspaceDescriptor;
    logger: Logger;
    sessionEngineArgs: {
        workspaceRoot: string;
        stateRoot: string;
        sessionStoragePath: string;
        preferApiKey: boolean;
        workspaceId: string;
        autopilot?: AutopilotProfile;
    };
};
export type ControlPlaneWorkspaceContext = HeddleServerContext & {
    requestWorkspace: ControlPlaneRequestWorkspace;
};
export declare const controlPlaneWorkspaceProcedure: import("@trpc/server").TRPCProcedureBuilder<HeddleServerContext, object, {
    requestWorkspace: ControlPlaneRequestWorkspace;
}, {
    workspaceId?: string | undefined;
} | undefined, {
    workspaceId?: string | undefined;
} | undefined, import("@trpc/server").TRPCUnsetMarker, import("@trpc/server").TRPCUnsetMarker, false>;
/**
 * Resolves the workspace for one control-plane request.
 *
 * Web v2 routes carry the workspace being viewed. Every workspace-owned
 * tRPC procedure should resolve through this helper so reads, mutations,
 * subscriptions, traces, logs, memory, and task state use the same state root.
 */
export declare function resolveControlPlaneRequestWorkspace(ctx: HeddleServerContext, input?: WorkspaceScopedInput): ControlPlaneRequestWorkspace;
export {};
//# sourceMappingURL=control-plane-workspace.d.ts.map