import { Command, Interfaces } from "@oclif/core"; import { BaseCommand } from "./BaseCommand.js"; import { ListColumns, ListFormatter } from "../../rendering/formatter/ListFormatter.js"; import { Response } from "@mittwald/api-client-commons"; import { ExtendedBaseCommand } from "./ExtendedBaseCommand.js"; import { SuccessfulResponse } from "../apiutil/SuccessfulResponse.js"; export type Flags = Interfaces.InferredFlags<(typeof ListBaseCommand)["baseFlags"] & T["flags"]>; export type Args = Interfaces.InferredArgs; export type ColumnOpts = { shortIdKey?: keyof TItem; outputFormat?: string; }; export type SorterFunction = (a: TItem, b: TItem) => number; export declare abstract class ListBaseCommand, TAPIResponse extends Response> extends ExtendedBaseCommand { static baseFlags: { output: Interfaces.OptionFlag<"json" | "txt" | "yaml" | "csv" | "tsv">; extended: Interfaces.BooleanFlag; "no-header": Interfaces.BooleanFlag; "no-truncate": Interfaces.BooleanFlag; "no-relative-dates": Interfaces.BooleanFlag; "csv-separator": Interfaces.OptionFlag<"," | ";">; token: Interfaces.OptionFlag; }; protected formatter: ListFormatter; protected sorter?: SorterFunction; init(): Promise; run(): Promise; protected abstract getData(): Promise; protected mapData(data: SuccessfulResponse["data"]): TItem[] | Promise; protected getColumns(data: TItem[], opts?: ColumnOpts): ListColumns; }