import React from 'react'; import { type CSSObject } from 'restyle'; import { type CommandVariant as PackageManagerCommandVariant } from '../../file-system/PackageManager.ts'; import { type SlotComponentOrProps } from '../../utils/slot-components.ts'; import { CopyCommand } from './CopyCommand.ts'; export type CommandVariant = PackageManagerCommandVariant; export interface CommandProps { /** The type of command to render across package managers. */ variant?: CommandVariant; /** Content used as the subject: packages (install), script (run), binary (exec), or template (create). */ children: React.ReactNode; /** Whether the command should validate the npm package before rendering. */ shouldValidate?: boolean; /** Override the components and/or props for each slot. */ components?: Partial; } type ContainerProps = React.ComponentProps<'div'> & { css?: CSSObject; }; type TabsProps = React.ComponentProps<'div'> & { css?: CSSObject; }; type TabButtonProps = React.ComponentProps<'button'> & { css?: CSSObject; }; type TabPanelProps = React.ComponentProps<'pre'> & { css?: CSSObject; }; type CodeProps = React.ComponentProps<'code'> & { css?: CSSObject; }; type CopyButtonProps = React.ComponentProps; export type CommandComponents = { Container: React.ComponentType; Tabs: React.ComponentType; TabButton: React.ComponentType; TabPanel: React.ComponentType; CopyButton: React.ComponentType; Code: React.ComponentType; }; export type CommandComponentOverrides = { Container: SlotComponentOrProps; Tabs: SlotComponentOrProps; TabButton: SlotComponentOrProps; TabPanel: SlotComponentOrProps; CopyButton: SlotComponentOrProps; Code: SlotComponentOrProps; }; /** Renders a terminal command with a variant for each package manager. */ export declare function Command({ children, variant, components: componentsProp, shouldValidate, }: CommandProps): React.JSX.Element; export {};