/**
 * Context Management Interface and Types
 */
import type { LLMMessage } from '../llm/types.js';
export interface ContextWindow {
    maxTokens: number;
    currentTokens: number;
    messages: LLMMessage[];
    availableRagResults?: string[];
    relatedEntityIds?: string[];
}
export interface ContextManager {
    addMessage(message: LLMMessage): void;
    getHistory(): LLMMessage[];
    prune(targetTokenCount: number): Promise<void>;
    summarize(): Promise<string>;
    injectRagContext(query: string, limit?: number): Promise<void>;
    calculateTokenCount(message: LLMMessage): number;
}
export type ContextVantage = 'boot' | 'edit' | 'review';
export interface ContextPackRef {
    kind: 'issue' | 'file' | 'entity' | 'decision' | 'milestone' | 'policy';
    id: string;
    /** ≤ ~120 chars; never full body */
    summary?: string;
}
export interface ContextPackFocus {
    issueId: string;
    title: string;
    status: string;
    priority?: string;
    labels?: string[];
    ac: Array<{
        description: string;
        status: string;
    }>;
}
export interface ContextPackWaiting {
    issueId: string;
    from: string;
    to: string;
    status: string;
    re: string;
    /** First line, ≤ 80 chars */
    preview: string;
}
export interface ContextPack {
    version: 1;
    vantage: ContextVantage;
    budgetTokens: number;
    estimatedTokens: number;
    truncated: boolean;
    generatedAt: string;
    lane: {
        id: string | null;
        worktreePath: string | null;
        editRoot: string;
    };
    focus: ContextPackFocus | null;
    waitingOnYou: ContextPackWaiting[];
    milestone: {
        id: string;
        message: string;
        at: string;
    } | null;
    decisions: ContextPackRef[];
    links: ContextPackRef[];
    policyRefs: ContextPackRef[];
}
export interface ContextPackOptions {
    budgetTokens?: number;
    vantage?: ContextVantage;
    /** Focus issue id (e.g. TRL-127). Required for edit/review unless unique in_progress. */
    issueId?: string;
    /** Repo root used for editRoot fallback when no lane worktree. */
    rootPath: string;
}
/** Thrown when edit/review cannot resolve a single focus issue. */
export declare class ContextPackFocusError extends Error {
    constructor(message: string);
}
//# sourceMappingURL=types.d.ts.map