import { type IOFormat } from '../io-util.js'; import { type TableFieldDefinition } from '../table-generator.js'; import { type Naming, type Sorting } from './io-defs.js'; import { type BuildOutputFormatterFlags } from './output-builder.js'; import { type SmartThingsCommand } from './smartthings-command.js'; export type TableCommonOutputProducer = { tableFieldDefinitions: TableFieldDefinition[]; }; export type CustomCommonOutputProducer = { buildTableOutput(data: O): string; }; export type CommonOutputProducer = TableCommonOutputProducer | CustomCommonOutputProducer; export type TableCommonListOutputProducer = Sorting & { listTableFieldDefinitions: TableFieldDefinition[]; }; export type CustomCommonListOutputProducer = Sorting & { buildListTableOutput(data: L[]): string; }; export type CommonListOutputProducer = Sorting | TableCommonListOutputProducer | CustomCommonListOutputProducer; export type FormatAndWriteItemFlags = BuildOutputFormatterFlags; export declare const formatAndWriteItemBuilder: (yargs: import("yargs").Argv) => import("yargs").Argv; export type FormatAndWriteItemConfig = CommonOutputProducer; /** * Format and output the given item. * * @param command The command outputting the list. * @param config Configuration for how to write the list. This must include either a list of * table field definitions called `tableFieldDefinitions` or a function to write common-formatted * output called `buildTableOutput`. * @param item The item to be written. * @param defaultIOFormat The default IOFormat to use. This should be used when a command also takes * input so the output can default to the input format. */ export declare function formatAndWriteItem(command: SmartThingsCommand, config: FormatAndWriteItemConfig, item: O, defaultIOFormat?: IOFormat): Promise; export type FormatAndWriteListFlags = BuildOutputFormatterFlags; export declare const formatAndWriteListBuilder: (yargs: import("yargs").Argv) => import("yargs").Argv; export type FormatAndWriteListConfig = CommonListOutputProducer & Naming & Sorting; export type FormatAndWriteListOptions = { /** * Set this to true if you want to include an index in the output. Default is false. */ includeIndex?: boolean; /** * Set this to true if you're displaying this to the user for a question. This will force * output to stdout and skip the JSON/YAML formatters. Default is false. */ forUserQuery?: boolean; /** * A custom error message to display when no items are found. */ customNotFoundMessage?: string; }; /** * Format and output the given list. * * @param command The command outputting the list. * @param config Configuration for how to write the list. This must include either a list of * table field definitions called `listTableFieldDefinitions` or a function to write * common-formatted output called `buildTableOutput`. * @param list The items to be written. * @param options See FormatAndWriteListOptions for details. */ export declare function formatAndWriteList(command: SmartThingsCommand, config: FormatAndWriteListConfig, list: L[], options?: FormatAndWriteListOptions): Promise; //# sourceMappingURL=format.d.ts.map