export interface EntityContribution {
    name: string;
    fields: string[];
    relations?: string[];
}
export interface ApiContractContribution {
    type: 'rest' | 'graphql' | 'trpc' | 'grpc' | 'websocket';
    endpoint?: string;
    description: string;
}
/** Structured knowledge that an AI agent extracts from user documents. */
export interface ContributedContext {
    entities?: EntityContribution[];
    apiContracts?: ApiContractContribution[];
    architectureNotes?: string;
    techDecisions?: string[];
    userFlows?: string[];
    nonFunctionalRequirements?: string[];
    /** Free-text additional context — max 10 000 chars. */
    additionalContext?: string;
}
/** Trace metadata for a single contribution call. */
export interface ContextSource {
    documentName: string;
    contributedAt: string;
    contributedBy: string;
}
/** Mismatch between auto-detected and contributed knowledge. */
export interface ContextConflict {
    field: string;
    autoDetectedValue: string;
    contributedValue: string;
    /** Human-readable guidance for the agent to resolve the conflict. */
    recommendation: string;
}
/** Result from request_context. */
export interface RequestContextResult {
    prompt: string;
    missingAreas: string[];
    alreadyRequested: boolean;
}
/** Result from contribute_context. */
export interface ContributeContextResult {
    /** Field paths that were effectively merged into knowledge.json. */
    merged: string[];
    conflicts: ContextConflict[];
    sourcesCount: number;
}
export interface RequestContextInput {
    projectId: string;
    /** Skip the already-requested guard and re-generate the prompt. */
    force?: boolean;
}
export interface ContributeContextInput {
    projectId: string;
    context: ContributedContext;
    source: ContextSource;
}
/** Agent style for context prompt generation. */
export type ContextAgentStyle = 'claude-code' | 'cursor' | 'windsurf' | 'generic';
/** Result of the internal mergeContext call. */
export interface ContextMergeResult {
    merged: string[];
    conflicts: ContextConflict[];
}
//# sourceMappingURL=context.d.ts.map