import type { HttpClient, QueryParamValue } from "../http.js";
import { type OperationCall } from "../service.js";
import type { JsonObject } from "../types.js";
import type { DescribeMetadataParams, DescribeMetadataResult, FetchMetadataCatalogOptions, ListEntitiesResult, MetadataCatalog } from "./types.js";
export interface MetadataService {
    listEntities: () => Promise<ListEntitiesResult>;
    describeMetadata: (params?: DescribeMetadataParams) => Promise<DescribeMetadataResult>;
    fetchCatalog: (options?: FetchMetadataCatalogOptions) => Promise<MetadataCatalog>;
    (operation: string, body?: JsonObject, query?: Record<string, QueryParamValue>): Promise<unknown>;
    [operation: string]: OperationCall | (() => Promise<ListEntitiesResult>) | ((params?: DescribeMetadataParams) => Promise<DescribeMetadataResult>) | ((options?: FetchMetadataCatalogOptions) => Promise<MetadataCatalog>);
}
export declare function createMetadataService(http: HttpClient): MetadataService;
//# sourceMappingURL=service.d.ts.map