/** Platform target for the design being analyzed */
export type DesignPlatform = 'web' | 'mobile' | 'desktop';
/** Responsive breakpoint definition */
export interface DesignBreakpoint {
    name: string;
    minWidth: number;
    maxWidth?: number;
    description: string;
}
/** A single interaction state for a component */
export interface DesignInteractionState {
    name: string;
    trigger: string;
    visualChange: string;
    dataChange?: string;
}
/** A UI component extracted from a design description */
export interface DesignComponent {
    id: string;
    name: string;
    type: 'container' | 'form' | 'button' | 'input' | 'list' | 'modal' | 'nav' | 'card' | 'text' | 'image' | 'other';
    description: string;
    props: DesignComponentProp[];
    interactionStates: DesignInteractionState[];
    a11yRequirements: string[];
    children: DesignComponent[];
}
/** A prop/attribute of a design component */
export interface DesignComponentProp {
    name: string;
    type: string;
    required: boolean;
    description: string;
    exampleValue?: string;
}
/** A screen/view parsed from the design description */
export interface DesignScreen {
    id: string;
    name: string;
    description: string;
    route?: string;
    components: DesignComponent[];
    breakpoints: DesignBreakpoint[];
    acceptanceCriteria: string[];
    a11yRequirements: string[];
    dataBindings: DesignDataBinding[];
}
/** Represents a data binding between UI and data source */
export interface DesignDataBinding {
    componentId: string;
    dataSource: string;
    fieldMapping: string;
    loadingState?: string;
    errorState?: string;
}
/** Input arguments for the design_to_spec tool */
export interface DesignToSpecArgs {
    projectId: string;
    designDescription: string;
    screens?: string[];
    platform?: DesignPlatform;
    includeA11y?: boolean;
}
/** Parsed intermediate representation of the design */
export interface ParsedDesign {
    title: string;
    platform: DesignPlatform;
    screens: DesignScreen[];
    globalComponents: DesignComponent[];
    designTokens: DesignToken[];
}
/** A design token (color, spacing, typography) */
export interface DesignToken {
    name: string;
    category: 'color' | 'spacing' | 'typography' | 'shadow' | 'border' | 'other';
    value: string;
    description?: string;
}
/** Input for the generate_spec_from_design tool (SPEC-159) */
export interface GenerateSpecFromDesignInput {
    projectPath: string;
    title: string;
    designDescription: string;
    screens?: string[];
    userFlows?: string[];
    components?: string[];
    type?: 'feature' | 'bugfix' | 'refactor';
    tags?: string[];
}
/** The generated spec content from design analysis */
export interface DesignToSpecResult {
    specMarkdown: string;
    screens: DesignScreen[];
    uiContractMarkdown: string;
    acceptanceCriteria: string[];
    a11yRequirements: string[];
    breakpoints: DesignBreakpoint[];
    generatedAt: string;
}
//# sourceMappingURL=design-to-spec.d.ts.map