import React from 'react';
import type { JSX } from 'react';
import type { CodeBlockControlsProps } from '../../components/CodeBlock/CodeBlockControls';
export type CodeBlockProps = {
    lang?: string;
    source?: string;
    externalSource?: ExternalSource;
    header?: CodeBlockControlsProps;
    dataTestId?: string;
    className?: string;
    tabs?: CodeBlockItems;
    dropdown?: CodeBlockItems;
    withLineNumbers?: boolean;
    startLineNumber?: number;
    highlightedHtml?: string;
    skipHighlight?: boolean;
    codeBlockRef?: (instance: HTMLPreElement | null) => void;
    codeBlockMaxHeight?: string;
    hideCodeColors?: boolean;
    wrapContents?: boolean;
    [key: string]: unknown;
};
type UnstableExternalCodeSample = {
    lang: string;
    label?: string;
    get: (source: ExternalSource) => string;
};
export type CodeBlockItems = {
    items: {
        name: string;
        lang?: string;
        id: string;
    }[];
    onChange: (id: string) => void;
    value: string;
};
type ExternalSource = {
    sample: UnstableExternalCodeSample;
    exampleName?: string;
    pathParams?: any;
    properties?: any;
    operation?: any;
};
export declare function CodeBlock({ lang, source, externalSource, header, dataTestId, codeBlockRef, highlightedHtml, withLineNumbers, startLineNumber, className, codeBlockMaxHeight, tabs, dropdown, hideCodeColors, wrapContents, children, ...rest }: React.PropsWithChildren<CodeBlockProps>): JSX.Element;
export {};
