import { type ProfilingDefinition } from '../../../services/ProfilingDefinitionService.js'; import { CuneiformCommand } from '../../../base/cuneiform-command.js'; /** * Command result type for JSON output. */ export type DefinitionGetResult = { /** Whether the retrieval was successful */ success: boolean; /** Number of definitions retrieved */ definitionsRetrieved: number; /** The retrieved definitions */ definitions: ProfilingDefinition[]; /** Files created if --output-dir was specified */ files?: string[]; /** Error message if failed */ error?: string; /** Warnings (e.g., definitions not found) */ warnings?: string[]; }; /** * Retrieves profiling definitions by key from a Salesforce org. * * Use this command to: * - Query profiling definitions by their definition key (e.g., PD-0001) * - Export definitions to JSON files for backup or version control * - View definition details in table or JSON format * * @example * ```bash * # Retrieve a single definition * sf cuneiform definition get --target-org myOrg --keys PD-0001 * * # Retrieve multiple definitions * sf cuneiform definition get --target-org myOrg --keys PD-0001 --keys PD-0002 * * # Export definitions to JSON files * sf cuneiform definition get --target-org myOrg --keys PD-0001 --output-dir ./definitions * ``` */ export default class DefinitionGet 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; keys: import("@oclif/core/interfaces").OptionFlag; 'output-dir': import("@oclif/core/interfaces").OptionFlag; 'file-names': import("@oclif/core/interfaces").OptionFlag; format: import("@oclif/core/interfaces").OptionFlag<"table" | "json", import("@oclif/core/interfaces").CustomOptions>; }; /** * Executes the get command. * * @returns DefinitionGetResult with success status, definitions, and optional file list */ run(): Promise; /** * Retrieves definitions from the service for the given keys. * * @param definitionService - The profiling definition service * @param keys - Definition keys to retrieve * @returns Object containing found definitions, warnings, and not-found keys */ private retrieveDefinitions; /** * Exports definitions to JSON files in the specified directory. * * @param definitions - Definitions to export * @param outputDir - Output directory path * @param fileNames - Optional custom file names (must match definitions count) * @returns Array of exported file names */ private exportDefinitions; /** * Displays the full command output following UX guidelines. * * Renders: contextual header → Org Identity → Definitions table → * JSON guidance → Next Steps → warnings. */ private displayOutput; /** * Displays contextual next steps based on retrieved definitions. */ private displayNextSteps; }