import { Tab } from '../tab';
import { Badge } from './badge';
import { ToolbarText } from './toolbar-text';
import Formattable from './formattable';
import Presentation from './presentation';
import { MetadataBearing, EntitySpec } from '../../models/entity';
export declare type CustomContent = string | Record<string, any> | HTMLElement | Promise<HTMLElement>;
export interface CustomSpec<Content = void> extends EntitySpec, MetadataBearing<CustomContent> {
    noZoom?: boolean;
    isREPL?: boolean;
    presentation?: Presentation;
    renderAs?: string;
    subtext?: Formattable;
    toolbarText?: ToolbarText;
    content: CustomContent;
    badges?: Badge[];
    resource?: MetadataBearing<Content>;
    createdOnString?: string;
}
export interface Sidecar extends HTMLElement {
    entity: EntitySpec | CustomSpec;
    uuid?: string;
}
export declare const getSidecar: (tab: Tab) => Sidecar;
