/**
 * VS Code Extension Scaffold
 *
 * Bridge between Code Buddy and VS Code, providing inline diffs,
 * @-mentions, plan review, session history, and remote sessions.
 */
export interface VSCodeExtensionConfig {
    enableInlineDiffs: boolean;
    enableAtMentions: boolean;
    enablePlanReview: boolean;
    enableSessionHistory: boolean;
    enableRemoteSessions: boolean;
    autoActivatePythonVenv: boolean;
    multilineInput: boolean;
}
export interface InlineDiff {
    file: string;
    originalContent: string;
    modifiedContent: string;
    hunks: Array<{
        startLine: number;
        endLine: number;
        type: 'add' | 'remove' | 'modify';
        content: string;
    }>;
}
export interface EditorContext {
    file: string;
    selection?: {
        startLine: number;
        endLine: number;
        text: string;
    };
    diagnostics: Array<{
        line: number;
        message: string;
        severity: string;
    }>;
    language: string;
}
interface SessionEntry {
    id: string;
    timestamp: number;
    message: string;
    branch?: string;
}
interface PlanReview {
    id: string;
    steps: Array<{
        description: string;
        files: string[];
        approved: boolean;
    }>;
}
export declare class VSCodeBridge {
    private config;
    private activeDiffs;
    private sessionHistory;
    private plans;
    private remoteSessions;
    private tokensUsed;
    constructor(config?: Partial<VSCodeExtensionConfig>);
    createInlineDiff(file: string, original: string, modified: string): InlineDiff;
    getActiveDiffs(): InlineDiff[];
    acceptDiff(file: string): boolean;
    rejectDiff(file: string): boolean;
    acceptAllDiffs(): number;
    getEditorContext(file: string, selection?: {
        start: number;
        end: number;
    }): EditorContext;
    buildAtMention(context: EditorContext): string;
    addSession(id: string, message: string, branch?: string): void;
    getSessionHistory(): SessionEntry[];
    createPlanReview(steps: Array<{
        description: string;
        files: string[];
    }>): PlanReview;
    approvePlanStep(planId: string, stepIndex: number): boolean;
    listRemoteSessions(): Array<{
        id: string;
        task: string;
        status: string;
    }>;
    resumeRemoteSession(id: string): boolean;
    generatePackageJson(): Record<string, unknown>;
    getUsageInfo(): {
        tokensUsed: number;
        costEstimate: number;
        plan: string;
    };
    private computeHunks;
}
export {};
