import { LitElement, type PropertyValues } from 'lit';
export declare class RhCodeBlockCopyEvent extends Event {
/** Text content to copy */
content: string;
constructor(
/** Text content to copy */
content: string);
}
/**
* A code block applies special formatting to sections of code.
*
* @alias code-block
*
* @summary Formats code strings within a container
* @event {RhCodeBlockCopyEvent} copy - fired when the user requests to copy the code block text.
* Modify the `event.content` field to change the copied text
* (e.g. to remove a prompt from a shell command)
*/
export declare class RhCodeBlock extends LitElement {
#private;
private static actionIcons;
static styles: CSSStyleSheet[];
/**
* Space- or comma-separated list of code block action buttons to display, containing either 'copy', 'wrap', or both.
* 'copy' adds a button that copies the text content to the clipboard. 'wrap' adds a button that toggles line wrap.
*
* To override the default labels, e.g. for purposes of internationalization, use the
* `action-label-copy` and `action-label-wrap` slots. Each slot may receive two elements,
* one for the action's default state (e.g. "Copy to clipboard"),
* and one for the actions alternative state, e.g. "Copied!".
* The active-state element must have the attributes `hidden data-code-block-state="active"`
*
* @example html```
*
* Copy to Clipboard
* Copied!
* Copy failed!
* Toggle word wrap
* Toggle overflow
*
* ```
*/
actions: ('copy' | 'wrap')[];
/**
* When set to "client", `` will automatically highlight the source using Prism.js
* When set to "Prerendered", `` will apply supported RHDS styles to children with
* prismjs classnames in the element's root.
*/
highlighting?: 'client' | 'prerendered';
/** When set along with `highlighting="client"`, this grammar will be used to highlight source code */
language?: 'html' | 'css' | 'javascript' | 'typescript' | 'bash' | 'ruby' | 'yaml' | 'json';
/** When set, the code block displays with compact spacing */
compact: boolean;
/** When set, the code block source code will be dedented */
dedent: boolean;
/** When set, the code block is resizable */
resizable: boolean;
/** When set, the code block occupies it's full height, without scrolling */
fullHeight: boolean;
/** When set, lines in the code snippet wrap */
wrap: boolean;
/** When set to `hidden`, the code block's line numbers are hidden */
lineNumbers?: 'hidden' | 'visible';
private copyButtonState;
connectedCallback(): void;
disconnectedCallback(): void;
render(): import("lit-html").TemplateResult<1>;
protected firstUpdated(): void;
protected updated(changed: PropertyValues): void;
}
declare global {
interface HTMLElementTagNameMap {
'rh-code-block': RhCodeBlock;
}
}