import { BaseFacet } from './BaseFacet.js';
import { Ownership } from './JobFacets.js';
import { FieldTransformationType, TransformationType } from '../types/CommonTypes.js';
/**
 * Represents the facets of a dataset.
 */
export declare class DatasetFacets {
    columnLineage: ColumnLineage | null;
    dataSource: DataSource | null;
    dataQualityAssertions: DataQualityAssertions | null;
    lifecycleStateChange: LifecycleStateChange | null;
    ownership: Ownership | null;
    schema: Schema | null;
    storage: Storage | null;
    symlinks: Symlinks | null;
    version: Version | null;
    constructor(columnLineage?: ColumnLineage | null, dataSource?: DataSource | null, dataQualityAssertions?: DataQualityAssertions | null, lifecycleStateChange?: LifecycleStateChange | null, ownership?: Ownership | null, schema?: Schema | null, storage?: Storage | null, symlinks?: Symlinks | null, version?: Version | null);
}
/**
 * Represents a dataset facet.
 */
export declare class DatasetFacet extends BaseFacet {
    deleted: boolean | null;
    constructor(producer: string, schemaURL: string, deleted?: boolean | null);
}
/**
 * Represents a column lineage facet.
 */
export declare class ColumnLineage extends DatasetFacet {
    fields: Record<string, Field>;
    constructor(producer: string, schemaURL: string, fields?: Record<string, Field>, deleted?: boolean | null);
    addField(key: string, field: Field): void;
    getSchema(): string;
}
/**
 * Represents a field in column lineage.
 */
export declare class Field {
    inputFields: Item[];
    transformationDescription: string | null;
    transformationType: FieldTransformationType | null;
    constructor(inputFields: Item[], transformationDescription?: string | null, transformationType?: FieldTransformationType | null);
}
/**
 * Represents an item in a field.
 */
export declare class Item {
    namespace: string;
    name: string;
    field: string;
    transformations: Transformation[] | null;
    constructor(namespace: string, name: string, field: string, transformations?: Transformation[] | null);
}
/**
 * Represents a transformation.
 */
export declare class Transformation {
    type: TransformationType;
    subtype: string | null;
    description: string | null;
    masking: boolean | null;
    constructor(type: TransformationType, subtype?: string | null, description?: string | null, masking?: boolean | null);
}
/**
 * Represents a data source facet.
 */
export declare class DataSource extends DatasetFacet {
    name: string;
    uri: string;
    constructor(producer: string, schemaURL: string, name: string, uri: string, deleted?: boolean | null);
    getSchema(): string;
}
/**
 * Represents data quality assertions.
 */
export declare class DataQualityAssertions extends DatasetFacet {
    assertions: Assertion[];
    constructor(producer: string, schemaURL: string, assertions: Assertion[], deleted?: boolean | null);
    getSchema(): string;
}
/**
 * Represents an assertion.
 */
export declare class Assertion {
    assertion: string;
    success: boolean;
    column: string;
    constructor(assertion: string, success: boolean, column: string);
}
/**
 * Represents a lifecycle state change facet.
 */
export declare class LifecycleStateChange extends DatasetFacet {
    lifecycleStateChange: string;
    previousIdentifier: PreviousIdentifier | null;
    constructor(producer: string, schemaURL: string, lifecycleStateChange: string, previousIdentifier?: PreviousIdentifier | null, deleted?: boolean | null);
    getSchema(): string;
}
/**
 * Represents a previous identifier.
 */
export declare class PreviousIdentifier {
    namespace: string;
    name: string;
    constructor(namespace: string, name: string);
}
/**
 * Represents a schema facet.
 */
export declare class Schema extends DatasetFacet {
    fields: SchemaDatasetFacetFields[];
    constructor(producer: string, schemaURL: string, fields: SchemaDatasetFacetFields[], deleted?: boolean | null);
    getSchema(): string;
}
/**
 * Represents fields in a schema dataset facet.
 */
export declare class SchemaDatasetFacetFields {
    name: string;
    type: string | null;
    description: string | null;
    fields: SchemaDatasetFacetFields[] | null;
    constructor(name: string, type?: string | null, description?: string | null, fields?: SchemaDatasetFacetFields[] | null);
}
/**
 * Represents a storage facet.
 */
export declare class Storage extends DatasetFacet {
    storageLayer: string;
    fileFormat: string | null;
    constructor(producer: string, schemaURL: string, storageLayer: string, fileFormat?: string | null, deleted?: boolean | null);
    getSchema(): string;
}
/**
 * Represents a symlinks facet.
 */
export declare class Symlinks extends DatasetFacet {
    identifiers: Identifier[];
    constructor(producer: string, schemaURL: string, identifiers: Identifier[], deleted?: boolean | null);
    getSchema(): string;
}
/**
 * Represents an identifier.
 */
export declare class Identifier {
    namespace: string;
    name: string;
    type: string;
    constructor(namespace: string, name: string, type: string);
}
/**
 * Represents a version facet.
 */
export declare class Version extends DatasetFacet {
    datasetVersion: string;
    constructor(producer: string, schemaURL: string, datasetVersion: string, deleted?: boolean | null);
    getSchema(): string;
}
