import { InspectScope } from './lib/apps/inspect-scope.js'; import { GroupInfo } from './lib/inspect/table.js'; import { SwellCommand } from './swell-command.js'; export declare const inspectResourceBaseArgs: { identifier: import("@oclif/core/lib/interfaces/parser.js").Arg>; }; export declare const inspectResourceBaseFlags: { app: import("@oclif/core/lib/interfaces/parser.js").OptionFlag; live: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag; json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag; yes: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag; }; export interface InspectResourceCommandParsed { args: { identifier?: string; }; flags: { app?: string; json?: boolean; live?: boolean; yes?: boolean; }; } export declare abstract class InspectResourceCommand extends SwellCommand { /** Plural label for preamble + empty state, e.g. 'Webhooks'. */ protected abstract resourceLabel: string; /** Singular label for error messages, e.g. 'webhook'. */ protected abstract resourceLabelSingular: string; /** Admin path prefix, e.g. '/data/:webhooks'. */ protected abstract adminPath: string; /** Subcommand name as used in CLI, e.g. 'webhooks'. */ protected abstract commandName: string; /** * Record field used to look up a bare-name identifier. Defaults to 'name'; * override for resources that identify records by a different key * (e.g. webhooks use 'alias'). */ protected nameField: string; /** * Return the strict paste-back identifier for a record. Used as column 1 * content so every row is individually pasteable back into a detail query. * * Default implementation: * - no `app_id` → `record.id` (store-level records have no app-slug form) * - no name/alias → `record.id` (degenerate, no meaningful slug) * - otherwise → `app..`, using the raw hex when the slug map * has no entry (still pasteable via the hex appPart branch) */ protected keyFor(record: any, appSlugById: Record): string; /** * Optional compact meta rendered after the key. Only non-default state * should surface — enabled rows with no failures return undefined so the * listing stays to one key per line. */ protected metaFor(_record: any, _appSlugById: Record): string | undefined; /** * Post-process raw list results before rendering. Default is identity; * override to drop noise that the API returns unconditionally (e.g. * deprecated system records that have no server-side filter equivalent). * Detail-mode lookups bypass this hook. */ protected filterListResults(results: T[]): T[]; /** * Return the section grouping for a list record in global mode. Override * to change labels (e.g. content treats no-app_id rows as ``). */ protected groupForRecord(record: any, appSlugById: Record): GroupInfo; protected catch(error: Error): Promise; protected runInspect(parsed: InspectResourceCommandParsed): Promise; protected showList(scope: InspectScope, flags: InspectResourceCommandParsed['flags']): Promise; protected getListResults(scope: InspectScope, _flags: InspectResourceCommandParsed['flags']): Promise; protected getAppSlugById(scope: InspectScope): Promise>; protected afterList(_scope: InspectScope, _flags: InspectResourceCommandParsed['flags']): void; protected showDetail(identifier: string, scope: InspectScope, flags: InspectResourceCommandParsed['flags']): Promise; /** * Per-subclass detail-mode hints. Return runnable commands pointing to * runtime/sibling addresses for the inspected record. Interpolated values * must derive from the record's own fields, not constants — that keeps the * hint self-consistent with column 1 and absorbs platform-side renames. * Default is no hints. */ protected hints(_record: any): string[]; /** * Emit a fetched detail record. Prints JSON unconditionally; in non-`--json` * mode follows with a `Next steps:` block of `hints(record)` lines. * * `--json` is the machine-readable contract — hints belong in the same * stream as the human-facing output and are simply omitted there. */ protected emitDetail(record: any, flags: InspectResourceCommandParsed['flags']): void; private lookupByAppAndName; private printPreamble; protected throwNotFound(identifier: string): never; }