import { SdkBase, SdkOptions } from './SdkBase.js';
import { ContextListResult, ContextListOptions, ContextChangeRecord } from '../events/BaseEvents.js';
import type { DataCatalogSchema, DataCatalogSchemaWithVersion, DataCatalogScope, DataCatalogStatus, DataCatalogVersionInfo } from '../models/DataCatalog.js';
import type { DataCatalogVersionSchema } from '../models/DataCatalogVersion.js';
import type { ForeignDomainDependency } from '../modeling/types.js';
import type { DataDomainSchema } from '../modeling/DataDomain.js';
export interface DataCatalogListOptions extends ContextListOptions {
    scope?: DataCatalogScope;
}
export declare class DataCatalogSdk extends SdkBase {
    list(options?: DataCatalogListOptions, request?: SdkOptions): Promise<ContextListResult<DataCatalogSchemaWithVersion>>;
    /**
     * Lists a simple schema of versions for a given data catalog entry.
     * @param key The key of the Data Catalog entry to list versions for.
     */
    listVersions(key: string, request?: SdkOptions): Promise<ContextListResult<DataCatalogVersionInfo>>;
    /**
     * Publishes a new data catalog entry.
     * To publish a version, use the `publishVersion` method.
     * @param entry The data catalog entry to publish.
     * @returns The created data catalog entry.
     */
    publish(entry: DataCatalogSchema, request?: SdkOptions): Promise<ContextChangeRecord<DataCatalogSchema>>;
    read(key: string, request?: SdkOptions): Promise<DataCatalogSchema>;
    /**
     * Deprecates the entire data catalog entry.
     * To deprecate a version, use the `deprecateVersion` method.
     * @param key The key of the data catalog entry to deprecate.
     * @param reason The reason for deprecation.
     */
    deprecate(key: string, reason: string, request?: SdkOptions): Promise<ContextChangeRecord<DataCatalogSchema>>;
    /**
     * Removes the data catalog entry from the catalog. The entry is preserved in the database
     * and the user can still access it. It is used to recover from error when the entry was published
     * by mistake.
     * @param key The key of the data catalog entry to unpublish.
     */
    unpublish(key: string, request?: SdkOptions): Promise<ContextChangeRecord<DataCatalogSchema>>;
    publishVersion(key: string, version: DataCatalogVersionSchema, request?: SdkOptions): Promise<ContextChangeRecord<DataCatalogVersionSchema>>;
    readVersion(key: string, version: string, request?: SdkOptions): Promise<DataCatalogVersionSchema>;
    listDependencies(dependencies?: ForeignDomainDependency[], request?: SdkOptions): Promise<ContextListResult<DataDomainSchema>>;
    deprecateVersion(key: string, version: string, reason: string, request?: SdkOptions): Promise<ContextChangeRecord<DataCatalogVersionSchema>>;
    unpublishVersion(key: string, version: string, request?: SdkOptions): Promise<ContextChangeRecord<DataCatalogVersionSchema>>;
    checkPublicationStatus(domainId: string, request?: SdkOptions): Promise<DataCatalogStatus>;
}
//# sourceMappingURL=DataCatalogSdk.d.ts.map