import { LanguageFn } from 'highlight.js';
export interface ValueChangeDetail {
    updatedKey: string;
    valueObj: Record<string, any>;
}
export interface ValueChangeEvent extends CustomEvent {
    detail: ValueChangeDetail;
}
export interface PopupStyle {
    backgroundColor: string;
    borderColor: string;
    textColor: string;
    inputBorderColor: string;
}
export interface CustomRenderingProps {
    html: any;
    key: string;
    config: AnnotationConfig;
    isBgLight: boolean;
    popupStyle: PopupStyle;
}
export interface AnnotationConfig {
    type: 'boolean' | 'string' | 'number' | 'integer' | 'comment' | 'quote' | 'deletion' | 'name' | 'regexp' | 'selector-class' | 'selector-id' | 'tag' | 'template-variable' | 'variable' | 'built_in' | 'link' | 'literal' | 'meta' | 'params' | 'type' | 'attribute' | 'addition' | 'bullet' | 'symbol' | 'section' | 'title' | 'keyword' | 'selector-tag' | 'emphasis';
    value: boolean | string | number;
    formatValue?: (input: any) => any;
    animation?: 'background' | 'underline';
    isEditable?: boolean;
    knob?: 'boolean' | 'string' | 'number' | 'integer' | 'select' | 'date' | 'time' | 'datetime-local' | 'range' | 'color';
    min?: number;
    max?: number;
    options?: (boolean | string | number)[];
    shouldValidateJson?: true;
    title?: string;
    description?: string;
    customPopupPayload?: any;
    renderPopup?: (props: CustomRenderingProps) => any;
    renderDescription?: (props: CustomRenderingProps) => any;
}
export interface AnnotativeCodeFull {
    themeCss: string;
    content: string;
    annotation: Record<string, AnnotationConfig>;
    annotationMask?: string;
    encloser?: string;
    styleMap?: Record<string, string>;
    onValueChange?: ({ detail }: {
        detail: ValueChangeDetail;
    }) => any;
}
export interface AnnotativeCodeFullElement extends HTMLElement, AnnotativeCodeFull {
}
export interface AnnotativeCode extends AnnotativeCodeFull {
    languageFn: LanguageFn;
}
export interface AnnotativeCodeElement extends HTMLElement, AnnotativeCode {
}
//# sourceMappingURL=types.d.ts.map