import { Observable } from 'rxjs'; import { CRUD } from './CRUD'; import { MasterResourceAdapter } from './MasterResourceAdapter'; import { Plugin } from './Plugin'; import { BaseResource, BaseResourceOptions, Binary, Client, DescribeTable, ListTable, PluginManager, PortAllocator } from './types'; export interface ResourceTypeOptions { readonly plugin: Plugin; readonly name: string; readonly names: { readonly capital: string; readonly capitalPlural: string; readonly lower: string; readonly lowerPlural: string; }; } export interface MasterResourceAdapterOptions { readonly pluginManager: PluginManager; readonly dataPath: string; readonly binary: Binary; readonly portAllocator: PortAllocator; } export interface GetResource$Options { readonly name: string; readonly client: Client; readonly options: ResourceOptions; } export declare class ResourceType { readonly plugin: Plugin; readonly name: string; readonly names: { readonly capital: string; readonly capitalPlural: string; readonly lower: string; readonly lowerPlural: string; }; constructor({ plugin, name, names }: ResourceTypeOptions); filterResources(resources: readonly Resource[], _options: ResourceOptions): readonly Resource[]; getResource$({ name, client, options, }: GetResource$Options): Observable; getResource({ name, client, options, }: GetResource$Options): Promise; createMasterResourceAdapter(_options: MasterResourceAdapterOptions): Promise>; getCRUD(): CRUD; getListTable(resources: readonly Resource[]): ListTable; getDescribeTable(resource: Resource): DescribeTable; }