import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { ApiClient } from "@trigger.dev/core/v3";
import { CliApiClient } from "../apiClient.js";
import { FileLogger } from "./logger.js";
export type McpContextOptions = {
    projectRef?: string;
    fileLogger?: FileLogger;
    apiUrl?: string;
    profile?: string;
    devOnly?: boolean;
    readonly?: boolean;
};
export declare class McpContext {
    readonly server: McpServer;
    readonly options: McpContextOptions;
    private _profileLoaded;
    private _resolveProfileLoaded;
    constructor(server: McpServer, options: McpContextOptions);
    get logger(): FileLogger | undefined;
    getAuth(): Promise<import("../utilities/session.js").LoginResultOk>;
    getCliApiClient(branch?: string): Promise<CliApiClient>;
    getApiClient(options: {
        projectRef: string;
        environment: string;
        scopes: string[];
        branch?: string;
    }): Promise<ApiClient>;
    getCwd(): Promise<string | undefined>;
    getProjectRef(options: {
        projectRef?: string;
        cwd?: string;
    }): Promise<string>;
    getProjectDir({ cwd }: {
        cwd?: string;
    }): Promise<{
        ok: boolean;
        error: string;
        cwd?: undefined;
    } | {
        ok: boolean;
        cwd: string;
        error?: undefined;
    }>;
    switchProfile(profile: string, projectDir?: string): void;
    /**
     * Load the persisted profile from the project-scoped .trigger/mcp.json.
     * Overrides the default global profile with the project-scoped one.
     * Must be called once after initialization — tools wait for this before authenticating.
     */
    loadProjectProfile(): Promise<void>;
    getDashboardUrl(path: string): Promise<string>;
    get hasRootsCapability(): boolean;
    get hasSamplingCapability(): boolean;
    get hasElicitationCapability(): boolean;
}
