import { DataCatalogScope } from './DataCatalog.js';
import { DataCatalogVersionKind } from './kinds.js';
export type DataCatalogLifecycle = 'stable' | 'beta' | 'dev';
export interface DataCatalogVersionSchema {
    /**
     * The key of the version.
     *
     * The key can only be set when creating a new data catalog entry.
     * @readonly
     */
    key: string;
    /**
     * The kind of the schema
     */
    readonly kind: typeof DataCatalogVersionKind;
    /**
     * The key of the parent data catalog entry.
     * It is only populated by the API when creating the version.
     * @readonly
     */
    catalogKey: string;
    /**
     * The publication scope of the data catalog entry.
     *
     * When the scope is set to a different value than the one of the parent data catalog entry,
     * then this value is used to determine the visibility of the data catalog entry. However,
     * the reader cannot access the version with a "public" scope if the parent data catalog entry is private.
     *
     * @required
     */
    scope: DataCatalogScope;
    /**
     * The lifecycle of the data catalog entry.
     *
     * - `stable`: The data catalog entry is stable and can be used in production.
     * - `beta`: The data catalog entry is in beta and may change in the future.
     * - `dev`: The data catalog entry is in development and likely will change in the future.
     *
     * The lifecycle is a readonly property and is set by the API when creating or updating the data catalog entry.
     * A version is immutable and to change the lifecycle, a new version must be created.
     *
     * @required
     */
    lifecycle: DataCatalogLifecycle;
    /**
     * The version string according to the [semantic versioning](https://semver.org/) specification.
     * Note, this value is limited to 32 characters by the API.
     * @required
     */
    version: string;
    /**
     * The id of the user who created the version.
     * It is ignored when creating or updating a data catalog entry.
     * @readonly
     */
    publishedBy: string;
    /**
     * The timestamp when this version was unpublished.
     * Only set when the version was unpublished.
     * @readonly
     */
    unpublishedAt?: number;
    /**
     * A flag indicating if the version is deprecated.
     * @readonly
     */
    deprecated?: boolean;
    /**
     * The timestamp when the version was deprecated.
     * Only set when the version was deprecated.
     * @readonly
     */
    deprecatedAt?: number;
    /**
     * The id of the user who deprecated the version.
     * Only set when the version was deprecated.
     * @readonly
     */
    deprecatedBy?: string;
    /**
     * The reason why the version was deprecated.
     * Only set when the version was deprecated.
     */
    deprecationReason?: string;
    /**
     * The timestamp when the data catalog entry was created.
     * It is ignored when creating or updating a data catalog entry.
     * @readonly
     */
    createdAt: number;
    /**
     * The timestamp when the data catalog entry was last updated.
     * It is ignored when creating or updating a data catalog entry.
     * @readonly
     */
    updatedAt: number;
    /**
     * The changelog of the data catalog entry.
     * Note, this value is required by the API when creating the version.
     */
    changelog?: string;
}
export declare class DataCatalogVersion implements DataCatalogVersionSchema {
    key: string;
    get kind(): typeof DataCatalogVersionKind;
    catalogKey: string;
    scope: DataCatalogScope;
    lifecycle: DataCatalogLifecycle;
    version: string;
    publishedBy: string;
    unpublishedAt?: number | undefined;
    deprecated?: boolean | undefined;
    deprecatedAt?: number | undefined;
    deprecatedBy?: string | undefined;
    deprecationReason?: string | undefined;
    createdAt: number;
    updatedAt: number;
    changelog?: string | undefined;
    static createSchema(input: Partial<DataCatalogVersionSchema>): DataCatalogVersionSchema;
    constructor(input?: Partial<DataCatalogVersionSchema>);
    toJSON(): DataCatalogVersionSchema;
}
//# sourceMappingURL=DataCatalogVersion.d.ts.map