import { Flex } from '../layout/flex.js'; import { Col } from '../components/col.js'; import type { TerminalRegion } from '../region.js'; import type { FlexOptions } from '../layout/flex.js'; import type { ColOptions } from '../components/col.js'; import type { FlexChild } from '../components/renderable.js'; export type { FlexChild }; export type FlexChildWithDescriptors = FlexChild | ColDescriptor | FlexDescriptor; /** * Descriptor for a flex container (resolved later with region) */ export interface FlexDescriptor { type: 'flex'; options: FlexOptions; children: FlexChild[]; } /** * Descriptor for a column (resolved later with region) */ export interface ColDescriptor { type: 'col'; options: ColOptions; content: string; } /** * Create a flex container with children * Accepts strings, Renderables, arrays (for functional components), or descriptors */ export declare function flex(options: FlexOptions, ...children: FlexChildWithDescriptors[]): FlexDescriptor; /** * Create a column (flex item) with options and content */ export declare function col(options: ColOptions, content: string): ColDescriptor; /** * Resolve a flex descriptor tree into actual components * Handles strings, arrays (for functional components), and descriptors */ export declare function resolveFlexTree(region: TerminalRegion, descriptor: FlexDescriptor | ColDescriptor | FlexChild): Flex | Col; /** * Helper for functional components that return arrays * Example: * ```ts * function myComponent(options, ...children) { * return component([ * 'Label:', * ...children * ]); * } * ``` * * Actually, you don't need this helper - just return the array directly! * Flex will automatically flatten arrays. */ export declare function component(children: FlexChild[]): FlexChild[]; //# sourceMappingURL=flex.d.ts.map