export interface ContextBlock {
    text: string;
    tokenEstimate: number;
    layers: number;
}
export interface SessionSummary {
    id: number;
    toolName: string;
    project: string;
    startTime: string;
    endTime?: string;
    filesTouched: string[];
    keyDecisions: string[];
    contextSnapshot: string;
}
export interface ApproachSummary {
    approach: string;
    status: string;
    count: number;
    lastReason: string | null;
    lastSeen: string;
}
export interface FileTouchSummary {
    filePath: string;
    touchCount: number;
    sessionCount: number;
    lastTouched: string;
}
export interface QuestionSummary {
    id: number;
    question: string;
    priority: string;
    resolved: boolean;
    answer: string | null;
    createdAt: string;
}
export interface FullContext {
    whoYouAre: string;
    rightNow: string;
    yourStyle: string;
    watchOut: string;
    predictions: string;
    dbPredictions: string[];
    injectedAt: string;
    toolHint?: string;
    lastSession?: SessionSummary;
    lastLiveFile?: {
        filePath: string;
        eventType: string;
        createdAt: string;
    };
    triedApproaches: ApproachSummary[];
    mostTouchedFiles: FileTouchSummary[];
    openQuestions: QuestionSummary[];
    staleness?: StalenessInfo;
    keyMemories?: Array<{
        type: string;
        topic: string | null;
        summary: string;
        importance: number;
        relevance: number;
    }>;
    vibe?: string;
}
export interface StalenessInfo {
    profile: 'fresh' | 'stale' | 'expired' | 'unknown';
    scan: 'fresh' | 'stale' | 'expired' | 'unknown';
    daysSinceScan: number | null;
    daysSinceProfile: number | null;
    shouldRescan: boolean;
    warning: string | null;
}
export declare function buildContext(projectPath?: string, toolName?: string): FullContext;
export declare function formatContextForInjection(ctx: FullContext, compact?: boolean): string;
export declare function formatContextForTool(ctx: FullContext, toolName?: string, projectNameOverride?: string): string;
export declare function estimateTokens(text: string): number;
export declare const DEFAULT_STALE_DAYS = 7;
export declare const DEFAULT_EXPIRED_DAYS = 30;
export type StalenessLevel = 'fresh' | 'stale' | 'expired' | 'unknown';
export declare function getStalenessStatus(timestamp: string | undefined, staleDays?: number, expiredDays?: number): StalenessLevel;
//# sourceMappingURL=prompt-builder.d.ts.map