export interface OptionAPI {
    name: string;
    type: string;
    default?: any;
    description?: string;
}
export interface AttrAPI {
    name: string;
    title: string;
    group?: string;
    sync?: boolean;
    model?: boolean;
    type: string;
    'designer-value': string;
    options?: Array<any>;
    default?: any;
    description?: string;
    compType?: string;
}
export interface ComputedAPI {
    name: string;
    type: string;
    description?: string;
}
export interface DataAPI {
    name: string;
    type: string;
    default?: any;
    description?: string;
}
export interface SlotAPI {
    name: string;
    title: string;
    type: string;
    default?: any;
    'empty-background': 'add-sub' | 'add-sub-large' | 'image' | 'drag-entity-here' | 'add-any';
    description?: string;
    props?: Array<{
        name: string;
        type: string;
        description?: string;
    }>;
    support: Array<{
        name: string;
        title: string;
        snippet: string;
    }>;
}
export interface EventAPI {
    name: string;
    description?: string;
    params?: Array<{
        name: string;
        type: string;
        description?: string;
    }>;
}
export interface MethodAPI {
    name: string;
    type: string;
    default?: any;
    description?: string;
    params?: Array<{
        name: string;
        type: string;
        default?: string;
        description?: string;
    }>;
}
export interface AriaAPI {
    key: string;
    description?: string;
}
/**
 * 组件 api.yaml
 */
export default interface ComponentAPI {
    /**
     * 组件名称
     */
    name: string;
    /**
     * 组件标题
     */
    title: string;
    /**
     * 组件图标
     */
    icon: string;
    /**
     * 组件标签
     */
    labels: Array<string>;
    /**
     * 组件分类
     */
    category?: string;
    description?: string;
    docs?: {
        [name: string]: string;
    };
    options?: Array<OptionAPI>;
    data?: Array<DataAPI>;
    attrs?: Array<AttrAPI>;
    slots?: Array<SlotAPI>;
    computed?: Array<ComputedAPI>;
    events?: Array<EventAPI>;
    methods?: Array<MethodAPI>;
    aria?: Array<AriaAPI>;
}
