import { default as React, CSSProperties } from 'react';
import { IArchbaseDataSourceBase } from '@archbase/data';
export interface ArchbaseCodeViewerTab {
    /** Nome do arquivo exibido na aba */
    fileName: string;
    /** Codigo-fonte da aba */
    code: string;
    /** Linguagem para syntax highlighting */
    language: string;
    /** Icone opcional da aba */
    icon?: React.ReactNode;
}
export interface ArchbaseCodeViewerProps<T> {
    /** Fonte de dados onde sera lido o valor do codigo (V1 ou V2) */
    dataSource?: IArchbaseDataSourceBase<T>;
    /** Campo de onde sera lido o valor do codigo na fonte de dados */
    dataField?: string;
    /** Valor do codigo (standalone) */
    value?: string;
    /** Alias para value */
    code?: string;
    /** Linguagem para syntax highlighting @default 'typescript' */
    language?: string;
    /** Exibir numeros de linha @default true */
    showLineNumbers?: boolean;
    /** Exibir botao de copiar @default true */
    showCopyButton?: boolean;
    /** Label do componente */
    label?: string;
    /** Descricao do componente */
    description?: string;
    /** Mensagem de erro */
    error?: string;
    /** Linhas destacadas */
    highlightLines?: Record<string, {
        color: string;
        label?: string;
    }>;
    /** Altura maxima com scroll */
    maxHeight?: string | number;
    /** Estilo CSS */
    style?: CSSProperties;
    /** Classe CSS */
    className?: string;
    /** Largura do componente */
    width?: string | number;
    /** Quando fornecido, renderiza CodeHighlightTabs em vez de CodeHighlight */
    tabs?: ArchbaseCodeViewerTab[];
    /** Exibir borda ao redor do codigo @default false */
    withBorder?: boolean;
    /** Border radius @default 'sm' */
    radius?: string | number;
    /** Label do botao de copiar @default 'Copiar' */
    copyLabel?: string;
    /** Label do botao apos copiar @default 'Copiado' */
    copiedLabel?: string;
    /** Exibir botao de expandir/colapsar @default false */
    withExpandButton?: boolean;
}
export declare function ArchbaseCodeViewer<T>({ dataSource, dataField, value, code, language, showLineNumbers: _showLineNumbers, showCopyButton, label, description, error, highlightLines: _highlightLines, maxHeight, style, className, width, tabs, withBorder, radius, copyLabel, copiedLabel, withExpandButton, }: ArchbaseCodeViewerProps<T>): import("react/jsx-runtime").JSX.Element;
export declare namespace ArchbaseCodeViewer {
    var displayName: string;
}
