/**
 * Type definitions for the Brand Onboarding flow.
 *
 * The onboarding flow collects brand information from SMB owners
 * and generates a Brand Voice Guide used by marketing team agents.
 *
 * @module brand-onboarding-types
 */
/** A single onboarding question with metadata. */
export interface OnboardingQuestion {
    /** Unique question identifier */
    id: string;
    /** Question text displayed to the user */
    text: string;
    /** Input type determines UI rendering and validation */
    type: 'text' | 'select' | 'multi-select';
    /** Available options for select/multi-select types */
    options?: string[];
    /** Whether a response is required */
    required: boolean;
    /** Placeholder/hint text */
    placeholder?: string;
    /** Default value if not answered */
    defaultValue?: string;
    /** Order in the questionnaire (1-based) */
    order: number;
}
/** User's answer to a single question. */
export interface OnboardingAnswer {
    /** Matches OnboardingQuestion.id */
    questionId: string;
    /** User's response value */
    value: string;
    /** Timestamp of when the answer was provided */
    answeredAt: string;
}
/** Status of the onboarding session. */
export type OnboardingStatus = 'not_started' | 'in_progress' | 'completed' | 'generating' | 'done' | 'failed';
/** A complete onboarding session tracking state. */
export interface OnboardingSession {
    /** Unique session identifier */
    id: string;
    /** Team ID this onboarding belongs to */
    teamId: string;
    /** Template ID that triggered onboarding */
    templateId: string;
    /** Current status */
    status: OnboardingStatus;
    /** Collected answers so far */
    answers: OnboardingAnswer[];
    /** Index of the current question (0-based) */
    currentQuestionIndex: number;
    /** Total number of questions */
    totalQuestions: number;
    /** Generated Brand Voice Guide content (populated after completion) */
    brandVoiceGuide?: string;
    /** Path where the guide was saved */
    guidePath?: string;
    /** Session creation time */
    createdAt: string;
    /** Last update time */
    updatedAt: string;
    /** Error message if status is 'failed' */
    error?: string;
    /** Website URL for AI auto-extraction */
    websiteUrl?: string;
    /** AI-extracted prefill data */
    prefill?: OnboardingPrefill;
    /** Fields that still need manual input after AI extraction */
    missingFields?: string[];
    /** User-approved brand profile */
    approvedProfile?: BrandProfile;
}
/** Confidence level for AI-extracted prefill data. */
export type PrefillConfidence = 'high' | 'medium' | 'low';
/** A single field extracted from a website for onboarding prefill. */
export interface PrefillField {
    /** Extracted value */
    value: string;
    /** Source URLs where the data was found */
    sourceUrls: string[];
    /** Confidence of the extraction */
    confidence: PrefillConfidence;
    /** Method used for extraction */
    extractionMethod: string;
    /** Whether the user should review this value before use */
    needsReview: boolean;
}
/** Complete AI-extracted prefill data for an onboarding session. */
export interface OnboardingPrefill {
    businessName?: PrefillField;
    industry?: PrefillField;
    description?: PrefillField;
    targetCustomer?: PrefillField;
    competitors?: PrefillField;
    personality?: PrefillField;
    tone?: PrefillField;
    goals?: PrefillField;
    platforms?: PrefillField;
    contentExamples?: PrefillField;
}
/** Structured brand profile extracted from onboarding answers. */
export interface BrandProfile {
    /** Business name */
    businessName: string;
    /** Industry/vertical */
    industry: string;
    /** One-sentence business description */
    description: string;
    /** Target customer description */
    targetCustomer: string;
    /** Top competitors */
    competitors: string[];
    /** Brand personality words (e.g., Professional, Friendly, Bold) */
    personality: string[];
    /** Content tone */
    tone: 'formal' | 'casual' | 'playful' | 'authoritative';
    /** Marketing goals */
    goals: string[];
    /** Active social platforms */
    platforms: string[];
    /** Example content URLs or descriptions */
    contentExamples: string[];
}
/** Options for generating the Brand Voice Guide. */
export interface GenerateGuideOptions {
    /** Brand profile from questionnaire answers */
    profile: BrandProfile;
    /** Output directory path for the guide file */
    outputDir: string;
    /** Whether to use LLM to enhance the guide with Do's/Don'ts */
    useLLM?: boolean;
}
/** The 10 onboarding questions defined by the marketing template spec. */
export declare const ONBOARDING_QUESTIONS: OnboardingQuestion[];
/** Default content mix ratios for the Brand Voice Guide. */
export declare const DEFAULT_CONTENT_MIX: {
    readonly educational: 60;
    readonly behindTheScenes: 20;
    readonly promotional: 15;
    readonly interactive: 5;
};
//# sourceMappingURL=brand-onboarding.types.d.ts.map