import { CuneiformCommand } from '../../../base/cuneiform-command.js'; import { type ObjectListItem, type NamespaceCount } from '../../../services/ObjectListCommandService.js'; /** * Command result type for JSON output. */ export type ObjectListCommandResult = { /** Whether the command was successful */ success: boolean; /** Org identity information (if available) */ orgIdentity?: { orgId: string; orgName: string; orgType: string; isSandbox: boolean; instanceUrl: string; username: string; namespacePrefix?: string; }; /** Summary statistics */ summary: { totalObjects: number; withRecords: number; withoutRecords: number; standardObjects: number; customObjects: number; externalObjects: number; withOwner?: number; withRecordTypes?: number; namespaceCounts: NamespaceCount[]; }; /** Applied filters */ filters: { object?: string; filter?: string; namespace?: string; pattern?: string; withRecords?: boolean; withoutRecords?: boolean; withOwner?: boolean; withRecordTypes?: boolean; withBusinessProcess?: boolean; includeFieldCounts?: boolean; includeReferences?: boolean; withContactPoints?: boolean; classification?: 'customer' | 'internal' | 'all'; minRecords?: number; sort?: string; limit?: number; }; /** List of objects matching filters */ objects: ObjectListItem[]; /** Service metadata */ metadata?: { duration?: number; }; /** Error message if failed */ error?: string; }; /** * Lists Salesforce objects with record counts and optional filtering. * * Use this command to: * - Discover objects in an org with record counts * - Filter objects by type, namespace, or naming pattern * - Find objects with specific characteristics (OwnerId, record types) * - Analyze contact point fields for data profiling * * @example * ```bash * # List all objects with record counts * sf cuneiform object list --target-org myOrg * * # List custom objects only * sf cuneiform object list --target-org myOrg --filter custom * * # Filter by namespace and include contact points * sf cuneiform object list --target-org myOrg --namespace SBQQ --with-contact-points * ``` */ export default class ObjectList extends CuneiformCommand { static readonly summary: string; static readonly description: string; static readonly examples: string[]; static readonly flags: { 'target-org': import("@oclif/core/interfaces").OptionFlag; 'api-version': import("@oclif/core/interfaces").OptionFlag; object: import("@oclif/core/interfaces").OptionFlag; filter: import("@oclif/core/interfaces").OptionFlag<"standard" | "custom" | "all", import("@oclif/core/interfaces").CustomOptions>; namespace: import("@oclif/core/interfaces").OptionFlag; pattern: import("@oclif/core/interfaces").OptionFlag; 'with-records': import("@oclif/core/interfaces").BooleanFlag; 'without-records': import("@oclif/core/interfaces").BooleanFlag; 'with-owner': import("@oclif/core/interfaces").BooleanFlag; 'with-record-types': import("@oclif/core/interfaces").BooleanFlag; 'with-business-process': import("@oclif/core/interfaces").BooleanFlag; 'with-fields': import("@oclif/core/interfaces").BooleanFlag; 'with-references': import("@oclif/core/interfaces").BooleanFlag; 'with-contact-points': import("@oclif/core/interfaces").BooleanFlag; classification: import("@oclif/core/interfaces").OptionFlag<"all" | "customer" | "internal", import("@oclif/core/interfaces").CustomOptions>; 'min-records': import("@oclif/core/interfaces").OptionFlag; sort: import("@oclif/core/interfaces").OptionFlag<"name" | "recordCount" | "label", import("@oclif/core/interfaces").CustomOptions>; limit: import("@oclif/core/interfaces").OptionFlag; }; /** * Executes the object list command. * * @returns ObjectListCommandResult with success status, summary, and object list */ run(): Promise; private validateObjectFlagExclusions; }