export type InterviewDimension = 'technical' | 'ux' | 'edge-cases' | 'tradeoffs' | 'security' | 'performance' | 'integration';
export interface CoverageMap {
    technical: boolean;
    ux: boolean;
    'edge-cases': boolean;
    tradeoffs: boolean;
    security: boolean;
    performance: boolean;
    integration: boolean;
}
export interface InterviewState {
    sessionId: string;
    coverageMap: CoverageMap;
    completionPercent: number;
    accumulatedAnswers: Record<string, string>;
    nextDimension: InterviewDimension | null;
    ready: boolean;
}
/**
 * Analyzes answers to update which dimensions are covered.
 * Merges with an existing coverage map if provided.
 */
export declare function updateCoverageFromAnswers(answers: Record<string, string>, existing?: CoverageMap): CoverageMap;
/**
 * Returns the lowest-priority uncovered dimension, or null if all are covered.
 */
export declare function pickNextDimension(coverage: CoverageMap): InterviewDimension | null;
/**
 * Generates a targeted follow-up question for a specific dimension.
 * Takes existing answers into account to avoid repeating covered ground.
 */
export declare function generateDimensionQuestion(dimension: InterviewDimension, topic: string, answers: Record<string, string>): string;
/**
 * Computes completion percentage based on how many dimensions are covered (0–100).
 */
export declare function computeCompletion(coverage: CoverageMap): number;
/**
 * Returns true if the topic is too simple for interview mode.
 * Delegates to isShortTopic from questions.ts.
 */
export declare function shouldSkipInterview(topic: string): boolean;
//# sourceMappingURL=interview-mode.d.ts.map