/**
 * 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 ModelSchema } from 'serializr';
import type { V1_PureModelContext } from '../../model/context/V1_PureModelContext.js';
import type { V1_RawLambda } from '../../model/rawValueSpecification/V1_RawLambda.js';
import { SerializationFactory, type PlainObject } from '@finos/legend-shared';
import type { PureProtocolProcessorPlugin } from '../../../PureProtocolProcessorPlugin.js';
import { type DatasetEntitlementReport, DatasetSpecification } from '../../../../../action/analytics/StoreEntitlementAnalysis.js';
export declare class V1_StoreEntitlementAnalysisInput {
    clientVersion: string | undefined;
    /**
     * Studio does not process value specification, they are left in raw JSON form
     *
     * @discrepancy model
     */
    query?: V1_RawLambda | undefined;
    mapping: string;
    runtime: string;
    model: V1_PureModelContext;
    static readonly serialization: SerializationFactory<V1_StoreEntitlementAnalysisInput>;
}
export declare enum V1_DatasetSpecificationType {
    DATASET_SPECIFICATION = "datasetSpecification",
    RELATIONAL_DATABASE_TABLE_SPECIFICATION = "relationalDatabaseTable"
}
export declare class V1_DatasetSpecification {
    name: string;
    type: string;
    static readonly serialization: SerializationFactory<V1_DatasetSpecification>;
}
export declare class V1_RelationalDatabaseTableSpecification extends V1_DatasetSpecification {
    database: string;
    schema: string;
    table: string;
    static readonly serialization: SerializationFactory<V1_RelationalDatabaseTableSpecification>;
}
export declare const V1_deserializeDatasetSpecification: (json: PlainObject<V1_DatasetSpecification>, plugins: PureProtocolProcessorPlugin[]) => V1_DatasetSpecification;
export declare const V1_serializeDatasetSpecification: (protocol: V1_DatasetSpecification, plugins: PureProtocolProcessorPlugin[]) => PlainObject<V1_DatasetSpecification>;
export declare const V1_buildDatasetSpecification: (protocol: V1_DatasetSpecification, plugins: PureProtocolProcessorPlugin[]) => DatasetSpecification;
export declare const V1_transformDatasetSpecification: (metamodel: DatasetSpecification, plugins: PureProtocolProcessorPlugin[]) => V1_DatasetSpecification;
export declare class V1_EntitlementReportAnalyticsInput {
    storeEntitlementAnalyticsInput: V1_StoreEntitlementAnalysisInput;
    reports: V1_DatasetSpecification[];
}
export declare const V1_entitlementReportAnalyticsInputModelSchema: (plugins: PureProtocolProcessorPlugin[]) => ModelSchema<V1_EntitlementReportAnalyticsInput>;
export declare class V1_SurveyDatasetsResult {
    datasets: V1_DatasetSpecification[];
}
export declare const V1_surveyDatasetsResultModelSchema: (plugins: PureProtocolProcessorPlugin[]) => ModelSchema<V1_SurveyDatasetsResult>;
export declare abstract class V1_DatasetEntitlementReport {
    dataset: V1_DatasetSpecification;
}
export declare enum V1_DatasetEntitlementReportType {
    ACCESS_GRANTED = "accessGranted",
    ACCESS_APPROVED = "accessApproved",
    ACCESS_REQUESTED = "accessRequested",
    ACCESS_NOT_GRANTED = "accessNotGranted",
    UNSUPPORTED = "unsupported"
}
export declare class V1_DatasetEntitlementAccessGrantedReport extends V1_DatasetEntitlementReport {
}
export declare class V1_DatasetEntitlementAccessApprovedReport extends V1_DatasetEntitlementReport {
}
export declare class V1_DatasetEntitlementAccessRequestedReport extends V1_DatasetEntitlementReport {
}
export declare class V1_DatasetEntitlementAccessNotGrantedReport extends V1_DatasetEntitlementReport {
}
export declare class V1_DatasetEntitlementUnsupportedReport extends V1_DatasetEntitlementReport {
}
export declare const V1_deserializeDatasetEntitlementReport: (json: PlainObject<V1_DatasetEntitlementReport>, plugins: PureProtocolProcessorPlugin[]) => V1_DatasetEntitlementReport;
export declare class V1_CheckEntitlementsResult {
    reports: V1_DatasetEntitlementReport[];
}
export declare const V1_checkEntitlementsResultModelSchema: (plugins: PureProtocolProcessorPlugin[]) => ModelSchema<V1_CheckEntitlementsResult>;
export declare const V1_buildDatasetEntitlementReport: (protocol: V1_DatasetEntitlementReport, plugins: PureProtocolProcessorPlugin[]) => DatasetEntitlementReport;
//# sourceMappingURL=V1_StoreEntitlementAnalysis.d.ts.map