import { CLIOption, CRUDBase, NamesIn } from './CRUDBase'; import { ResourceType } from './ResourceType'; import { BaseResource, BaseResourceOptions, InteractiveCLI } from './types'; export interface ExecCLIOptions { readonly name: string; readonly cli: InteractiveCLI; readonly options: ResourceOptions; } export interface GetCLIAutocompleteOptions { readonly cli: InteractiveCLI; } export interface CRUDResourceOptions { readonly name: string; readonly names?: NamesIn; readonly resourceType: ResourceType; readonly help: string; readonly aliases?: readonly string[]; readonly extraArgs?: readonly string[]; readonly options?: readonly CLIOption[]; readonly autocomplete?: readonly string[]; readonly hidden?: boolean; } export interface GetCLINameOptions { readonly baseName: string; readonly cli: InteractiveCLI; readonly options: ResourceOptions; } export declare class CRUDResourceBase extends CRUDBase { constructor({ name, names, resourceType, help, aliases, extraArgs, options, autocomplete, hidden, }: CRUDResourceOptions); getCLIName({ baseName }: GetCLINameOptions): Promise; getCLIAutocomplete(options: GetCLIAutocompleteOptions): Promise; getCLIAutocompleteResourceOptions({ cli }: GetCLIAutocompleteOptions): Promise; preExecCLI(_options: ExecCLIOptions): Promise; postExecCLI(_options: ExecCLIOptions): Promise; }