import type { InteractiveQuestion } from './clarification.js';
export type ProjectOnboardingMode = 'existing_project' | 'new_project';
export type TechnologyDecisionSource = 'detected' | 'user-confirmed' | 'suggested-confirmed';
export type TechnologyVerificationStatus = 'verified' | 'unverified';
export interface TechnologyDocsVerification {
    name: string;
    url: string;
    status: TechnologyVerificationStatus;
    reason?: string;
}
export interface TechnologySelectionContract {
    mode: ProjectOnboardingMode;
    projectPath: string;
    parentWorkspacePath?: string;
    appName?: string;
    appSlug?: string;
    projectType?: string;
    platform?: string;
    language?: string;
    framework?: string | null;
    database?: string | null;
    source: TechnologyDecisionSource;
    evidence: string[];
    officialDocs: TechnologyDocsVerification[];
    verifiedAt?: string;
}
export interface NewProjectOnboardingInput {
    description: string;
    parentWorkspacePath?: string;
    projectPath?: string;
    appName?: string;
    appSlug?: string;
    projectType?: string;
    platform?: string;
    language?: string;
    framework?: string | null;
    database?: string | null;
    createDirectory?: boolean;
    clarificationAnswers?: Record<string, string>;
}
export interface NewProjectResolution {
    ready: boolean;
    parentWorkspacePath?: string;
    resolvedProjectPath?: string;
    appSlug?: string;
    questions: InteractiveQuestion[];
    contract?: TechnologySelectionContract;
    errors: string[];
}
export type NewProjectQuestionState = Partial<{
    parentWorkspacePath: string;
    appSlug: string;
    projectType: string;
    platform: string;
    language: string;
    framework: string | null;
    languageAnswered: boolean;
    frameworkAnswered: boolean;
    createDirectoryAnswered: boolean;
}>;
export interface NewProjectResolvedFields {
    parentWorkspacePath?: string;
    appName?: string;
    appSlug?: string;
    projectType?: string;
    platform?: string;
    language?: string;
    framework?: string | null;
    database?: string | null;
    languageAnswered: boolean;
    frameworkAnswered: boolean;
    createDirectoryAnswered: boolean;
    createDirectory: boolean;
    resolvedProjectPath?: string;
    errors: string[];
}
//# sourceMappingURL=technology-selection.d.ts.map