import type { ComponentMeta, PropMeta } from '../meta/component';
import type { AnalyzePluginBuilder } from './AnalyzePlugin';
export interface VSCodePluginConfig extends Record<string, unknown> {
    cwd: string;
    outFile: string;
    transformTagData?: (component: ComponentMeta, data: ITagData) => ITagData;
    transformAttributeData?: (prop: PropMeta, data: IAttributeData) => IAttributeData;
}
/**
 * Transforms component metadata into [VSCode Custom Data](https://github.com/microsoft/vscode-custom-data).
 * This will run in the `transform` plugin lifecycle step.
 */
export declare const createVSCodePlugin: AnalyzePluginBuilder<Partial<VSCodePluginConfig>>;
/**
 * https://github.com/microsoft/vscode-html-languageservice/blob/master/src/htmlLanguageTypes.ts#L164
 */
export interface IReference {
    name: string;
    url: string;
}
export interface ITagData {
    name: string;
    description?: string;
    attributes: IAttributeData[];
    references?: IReference[];
}
export interface IAttributeData {
    name: string;
    description?: string;
    valueSet?: string;
    values?: IValueData[];
    references?: IReference[];
}
export interface IValueData {
    name: string;
    description?: string;
    references?: IReference[];
}
export interface IValueSet {
    name: string;
    values: IValueData[];
}
export interface HTMLDataV1 {
    version: 1 | 1.1;
    tags?: ITagData[];
    globalAttributes?: IAttributeData[];
    valueSets?: IValueSet[];
}
