/**
 * Copyright (c) 2020-present, Goldman Sachs
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
import type { V1_EntitlementsLakehouseEnvironmentType } from '@finos/legend-graph';
import { SerializationFactory } from '@finos/legend-shared';
import type { TaxonomyNode } from './Taxonomy.js';
export declare enum DataProductSearchResultDetailsType {
    LAKEHOUSE = "lakehouse",
    LEGACY = "legacy",
    ERROR = "error"
}
export declare enum LakehouseDataProductSearchResultOriginType {
    SDLC = "SdlcDeployment",
    AD_HOC = "AdHocDeployment"
}
export declare abstract class LakehouseDataProductSearchResultOrigin {
}
export declare class LakehouseSDLCDataProductSearchResultOrigin extends LakehouseDataProductSearchResultOrigin {
    groupId: string | null;
    artifactId: string | null;
    versionId: string | null;
    path: string | null;
    static readonly serialization: SerializationFactory<LakehouseSDLCDataProductSearchResultOrigin>;
}
export declare class LakehouseAdHocDataProductSearchResultOrigin extends LakehouseDataProductSearchResultOrigin {
    static readonly serialization: SerializationFactory<LakehouseAdHocDataProductSearchResultOrigin>;
}
export declare abstract class DataProductSearchResultDetails {
}
export declare class LakehouseDataProductSearchResultDetails extends DataProductSearchResultDetails {
    dataProductId: string;
    deploymentId: number;
    producerEnvironmentName: string;
    producerEnvironmentType: V1_EntitlementsLakehouseEnvironmentType | undefined;
    origin: LakehouseDataProductSearchResultOrigin | null;
    static readonly serialization: SerializationFactory<LakehouseDataProductSearchResultDetails>;
}
export declare class LegacyDataProductSearchResultDetails extends DataProductSearchResultDetails {
    groupId: string;
    artifactId: string;
    versionId: string;
    path: string;
    static readonly serialization: SerializationFactory<LegacyDataProductSearchResultDetails>;
}
export declare class ErrorDataProductSearchResultDetails extends DataProductSearchResultDetails {
    message?: string;
    static readonly serialization: SerializationFactory<ErrorDataProductSearchResultDetails>;
}
export declare class DataProductSearchResultMetadata {
    next_page_number: number | null;
    num_pages: number;
    page_number: number;
    page_size: number;
    prev_page_number: number | null;
    total_count: number;
    lakehouse_count: number | undefined;
    legacy_count: number | undefined;
    external_source_count: number | undefined;
    has_filtered_products: boolean | undefined;
    static readonly serialization: SerializationFactory<DataProductSearchResultMetadata>;
}
export declare class DataProductSearchResult {
    dataProductTitle: string | null;
    dataProductDescription: string | null;
    tags1: string[];
    tags2: string[];
    tag_score: number;
    similarity: number;
    dataProductDetails: DataProductSearchResultDetails;
    dataProductSource: string | undefined;
    licenseTo: string | undefined;
    hygiene_score: number | null | undefined;
    meets_hygiene_threshold: boolean | undefined;
    static readonly serialization: SerializationFactory<DataProductSearchResult>;
}
export declare class DataProductSearchFiltersMetadata {
    taxonomy_tree: TaxonomyNode[];
    static readonly serialization: SerializationFactory<DataProductSearchFiltersMetadata>;
}
export declare class DataProductSearchResponse {
    results: DataProductSearchResult[];
    as_of_time: string;
    metadata: DataProductSearchResultMetadata;
    filters_metadata?: DataProductSearchFiltersMetadata;
    static readonly serialization: SerializationFactory<DataProductSearchResponse>;
}
//# sourceMappingURL=DataProductSearchResult.d.ts.map