import { Tab } from '@kui-shell/core/api/ui-lite'; import Models from '@kui-shell/core/api/models'; import Commands from '@kui-shell/core/api/commands'; import { Persister } from './persisters'; interface ExecSpec { kind: string; code: string; } interface KeyValuePair { key: string; value: string; } export interface Entity extends Models.ResourceWithMetadata { type: string; name: string; version?: string; isNew?: boolean; namespace?: string; noZoom?: boolean; viewName?: string; extract?: (raw: string, entity: Entity) => Entity; extractName?: (raw: string) => string; lock?: any; filepath?: string; exec: ExecSpec; persister?: Persister; gotoReadonlyView?: (Getter: any) => any; annotations: KeyValuePair[]; } export default Entity; export declare type IFetcher = (entityName: string, parsedOptions?: Commands.ParsedOptions, execOptions?: Commands.ExecOptions, createIfAbsent?: boolean, tab?: Tab) => Promise; export declare const registerFetcher: (fetcher: IFetcher) => void; export declare const fetchFile: IFetcher; export declare const fetchEntity: (tab: Tab, entityName: string, parsedOptions: Commands.ParsedOptions, execOptions: Commands.ExecOptions) => Promise;