import { Node } from 'unist';
import { DemoComponent, DemoComponentName } from './types';
/**
 * Creates all the Nodes necessary to render a Demo Component.
 *
 * It will render something like the follwing:
 * ```hbs
 * <DocfyDemo as |demo|>
 *   <demo.Example>
 *     <ComponentName />
 *   </demo.Example>
 *   <demo.Description @title="Heading depth 1" @editUrl="url">
 *     Demo markdown content
 *   </demo.Description>
 *   <demo.Snippets as |Snippet|>
 *     <Snippet @name="component">
 *       Code Snippet (with any highlight applied from remark)
 *     </Snippet>
 *   </demo.Snippets>
 * </DocfyDemo>
 * ```
 */
export declare function createDemoNodes(component: DemoComponent): Node[];
export declare function getExt(lang: string): string;
export declare function deleteNode(nodes: unknown, nodeToDelete: Node | undefined): void;
export declare function replaceNode(nodes: unknown, nodeToDelete: Node, ...newNodes: Node[]): void;
export declare function generateDemoComponentName(identifier: string, seenNames: Set<string>, tentativeCount?: number): DemoComponentName;
/**
 * Checks if a property is of type DemoComponent[]
 */
export declare function isDemoComponents(components: unknown): components is DemoComponent[];
//# sourceMappingURL=utils.d.ts.map