import { type BaseCollectionPaginationCountResponse, type Entity, type Group, type IdentitySet, type ResultInfo, type Site } from '../index.js';
import { type AdditionalDataHolder, type BackedModel, type Duration, type Parsable, type ParseNode, type SerializationWriter } from '@microsoft/kiota-abstractions';
export type AdditionalDataOptions = (typeof AdditionalDataOptionsObject)[keyof typeof AdditionalDataOptionsObject];
export interface AddToReviewSetOperation extends CaseOperation, Parsable {
    /**
     * The review set to which items matching the source collection query are added to.
     */
    reviewSet?: ReviewSet | null;
    /**
     * The sourceCollection that items are being added from.
     */
    sourceCollection?: SourceCollection | null;
}
export type CaseAction = (typeof CaseActionObject)[keyof typeof CaseActionObject];
export interface CaseCollectionResponse extends BaseCollectionPaginationCountResponse, Parsable {
    /**
     * The value property
     */
    value?: CaseEscaped[] | null;
}
export interface CaseEscaped extends Entity, Parsable {
    /**
     * The user who closed the case.
     */
    closedBy?: IdentitySet | null;
    /**
     * The date and time when the case was closed. The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z
     */
    closedDateTime?: Date | null;
    /**
     * The date and time when the entity was created. The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z
     */
    createdDateTime?: Date | null;
    /**
     * Returns a list of case custodian objects for this case.  Nullable.
     */
    custodians?: Custodian[] | null;
    /**
     * The case description.
     */
    description?: string | null;
    /**
     * The case name.
     */
    displayName?: string | null;
    /**
     * The external case number for customer reference.
     */
    externalId?: string | null;
    /**
     * The last user who modified the entity.
     */
    lastModifiedBy?: IdentitySet | null;
    /**
     * The latest date and time when the case was modified. The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z
     */
    lastModifiedDateTime?: Date | null;
    /**
     * Returns a list of case legalHold objects for this case.  Nullable.
     */
    legalHolds?: LegalHold[] | null;
    /**
     * Returns a list of case noncustodialDataSource objects for this case.  Nullable.
     */
    noncustodialDataSources?: NoncustodialDataSource[] | null;
    /**
     * Returns a list of case operation objects for this case. Nullable.
     */
    operations?: CaseOperation[] | null;
    /**
     * Returns a list of reviewSet objects in the case. Read-only. Nullable.
     */
    reviewSets?: ReviewSet[] | null;
    /**
     * The settings property
     */
    settings?: CaseSettings | null;
    /**
     * Returns a list of sourceCollection objects associated with this case.
     */
    sourceCollections?: SourceCollection[] | null;
    /**
     * The case status. Possible values are unknown, active, pendingDelete, closing, closed, and closedWithError. For details, see the following table.
     */
    status?: CaseStatus | null;
    /**
     * Returns a list of tag objects associated to this case.
     */
    tags?: Tag[] | null;
}
export interface CaseExportOperation extends CaseOperation, Parsable {
    /**
     * The name of the Azure storage location where the export will be stored. This only applies to exports stored in your own Azure storage location.
     */
    azureBlobContainer?: string | null;
    /**
     * The SAS token for the Azure storage location.  This only applies to exports stored in your own Azure storage location.
     */
    azureBlobToken?: string | null;
    /**
     * The description provided for the export.
     */
    description?: string | null;
    /**
     * The options provided for the export. For more information, see reviewSet: export. Possible values are: originalFiles, text, pdfReplacement, fileInfo, tags.
     */
    exportOptions?: ExportOptions[] | null;
    /**
     * The options provided specify the structure of the export. For more information, see reviewSet: export. Possible values are: none, directory, pst.
     */
    exportStructure?: ExportFileStructure | null;
    /**
     * The output folder ID.
     */
    outputFolderId?: string | null;
    /**
     * The name provided for the export.
     */
    outputName?: string | null;
    /**
     * The review set the content is being exported from.
     */
    reviewSet?: ReviewSet | null;
}
export interface CaseExportOperationCollectionResponse extends BaseCollectionPaginationCountResponse, Parsable {
    /**
     * The value property
     */
    value?: CaseExportOperation[] | null;
}
export interface CaseHoldOperation extends CaseOperation, Parsable {
}
export interface CaseIndexOperation extends CaseOperation, Parsable {
}
export interface CaseOperation extends Entity, Parsable {
    /**
     * The type of action the operation represents. Possible values are: addToReviewSet,applyTags,contentExport,convertToPdf,estimateStatistics, purgeData
     */
    action?: CaseAction | null;
    /**
     * The date and time the operation was completed.
     */
    completedDateTime?: Date | null;
    /**
     * The user that created the operation.
     */
    createdBy?: IdentitySet | null;
    /**
     * The date and time the operation was created.
     */
    createdDateTime?: Date | null;
    /**
     * The progress of the operation.
     */
    percentProgress?: number | null;
    /**
     * Contains success and failure-specific result information.
     */
    resultInfo?: ResultInfo | null;
    /**
     * The status of the case operation. Possible values are: notStarted, submissionFailed, running, succeeded, partiallySucceeded, failed.
     */
    status?: CaseOperationStatus | null;
}
export interface CaseOperationCollectionResponse extends BaseCollectionPaginationCountResponse, Parsable {
    /**
     * The value property
     */
    value?: CaseOperation[] | null;
}
export type CaseOperationStatus = (typeof CaseOperationStatusObject)[keyof typeof CaseOperationStatusObject];
export interface CaseSettings extends Entity, Parsable {
    /**
     * The OCR (Optical Character Recognition) settings for the case.
     */
    ocr?: OcrSettings | null;
    /**
     * The redundancy (near duplicate and email threading) detection settings for the case.
     */
    redundancyDetection?: RedundancyDetectionSettings | null;
    /**
     * The article Modeling (Themes) settings for the case.
     */
    topicModeling?: TopicModelingSettings | null;
}
export type CaseStatus = (typeof CaseStatusObject)[keyof typeof CaseStatusObject];
export type ChildSelectability = (typeof ChildSelectabilityObject)[keyof typeof ChildSelectabilityObject];
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {AddToReviewSetOperation}
 */
export declare function createAddToReviewSetOperationFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {CaseCollectionResponse}
 */
export declare function createCaseCollectionResponseFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {CaseEscaped}
 */
export declare function createCaseEscapedFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {CaseExportOperationCollectionResponse}
 */
export declare function createCaseExportOperationCollectionResponseFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {CaseExportOperation}
 */
export declare function createCaseExportOperationFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {CaseHoldOperation}
 */
export declare function createCaseHoldOperationFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {CaseIndexOperation}
 */
export declare function createCaseIndexOperationFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {CaseOperationCollectionResponse}
 */
export declare function createCaseOperationCollectionResponseFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {CaseOperation}
 */
export declare function createCaseOperationFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {CaseSettings}
 */
export declare function createCaseSettingsFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {CustodianCollectionResponse}
 */
export declare function createCustodianCollectionResponseFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {Custodian}
 */
export declare function createCustodianFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {DataSourceCollectionResponse}
 */
export declare function createDataSourceCollectionResponseFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {DataSourceContainer}
 */
export declare function createDataSourceContainerFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {DataSource}
 */
export declare function createDataSourceFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {Ediscoveryroot}
 */
export declare function createEdiscoveryrootFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {EstimateStatisticsOperation}
 */
export declare function createEstimateStatisticsOperationFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {LegalHoldCollectionResponse}
 */
export declare function createLegalHoldCollectionResponseFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {LegalHold}
 */
export declare function createLegalHoldFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {NoncustodialDataSourceCollectionResponse}
 */
export declare function createNoncustodialDataSourceCollectionResponseFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {NoncustodialDataSource}
 */
export declare function createNoncustodialDataSourceFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {OcrSettings}
 */
export declare function createOcrSettingsFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {PurgeDataOperation}
 */
export declare function createPurgeDataOperationFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {RedundancyDetectionSettings}
 */
export declare function createRedundancyDetectionSettingsFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {ReviewSetCollectionResponse}
 */
export declare function createReviewSetCollectionResponseFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {ReviewSet}
 */
export declare function createReviewSetFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {ReviewSetQueryCollectionResponse}
 */
export declare function createReviewSetQueryCollectionResponseFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {ReviewSetQuery}
 */
export declare function createReviewSetQueryFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {SiteSourceCollectionResponse}
 */
export declare function createSiteSourceCollectionResponseFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {SiteSource}
 */
export declare function createSiteSourceFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {SourceCollectionCollectionResponse}
 */
export declare function createSourceCollectionCollectionResponseFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {SourceCollection}
 */
export declare function createSourceCollectionFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {TagCollectionResponse}
 */
export declare function createTagCollectionResponseFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {Tag}
 */
export declare function createTagFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {TagOperation}
 */
export declare function createTagOperationFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {TopicModelingSettings}
 */
export declare function createTopicModelingSettingsFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {UnifiedGroupSourceCollectionResponse}
 */
export declare function createUnifiedGroupSourceCollectionResponseFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {UnifiedGroupSource}
 */
export declare function createUnifiedGroupSourceFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {UserSourceCollectionResponse}
 */
export declare function createUserSourceCollectionResponseFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {UserSource}
 */
export declare function createUserSourceFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
export interface Custodian extends DataSourceContainer, Parsable {
    /**
     * Date and time the custodian acknowledged a hold notification.
     */
    acknowledgedDateTime?: Date | null;
    /**
     * Identifies whether a custodian's sources were placed on hold during creation.
     */
    applyHoldToSources?: boolean | null;
    /**
     * Email address of the custodian.
     */
    email?: string | null;
    /**
     * Data source entity for SharePoint sites associated with the custodian.
     */
    siteSources?: SiteSource[] | null;
    /**
     * Data source entity for groups associated with the custodian.
     */
    unifiedGroupSources?: UnifiedGroupSource[] | null;
    /**
     * Data source entity for a the custodian. This is the container for a custodian's mailbox and OneDrive for Business site.
     */
    userSources?: UserSource[] | null;
}
export interface CustodianCollectionResponse extends BaseCollectionPaginationCountResponse, Parsable {
    /**
     * The value property
     */
    value?: Custodian[] | null;
}
export interface DataSource extends Entity, Parsable {
    /**
     * The user who created the dataSource.
     */
    createdBy?: IdentitySet | null;
    /**
     * The date and time the dataSource was created.
     */
    createdDateTime?: Date | null;
    /**
     * The display name of the dataSource, and is the name of the SharePoint site.
     */
    displayName?: string | null;
    /**
     * The holdStatus property
     */
    holdStatus?: DataSourceHoldStatus | null;
}
export interface DataSourceCollectionResponse extends BaseCollectionPaginationCountResponse, Parsable {
    /**
     * The value property
     */
    value?: DataSource[] | null;
}
export interface DataSourceContainer extends Entity, Parsable {
    /**
     * Created date and time of the dataSourceContainer entity.
     */
    createdDateTime?: Date | null;
    /**
     * Display name of the dataSourceContainer entity.
     */
    displayName?: string | null;
    /**
     * The holdStatus property
     */
    holdStatus?: DataSourceHoldStatus | null;
    /**
     * The lastIndexOperation property
     */
    lastIndexOperation?: CaseIndexOperation | null;
    /**
     * Last modified date and time of the dataSourceContainer.
     */
    lastModifiedDateTime?: Date | null;
    /**
     * Date and time that the dataSourceContainer was released from the case.
     */
    releasedDateTime?: Date | null;
    /**
     * Latest status of the dataSourceContainer. Possible values are: Active, Released.
     */
    status?: DataSourceContainerStatus | null;
}
export type DataSourceContainerStatus = (typeof DataSourceContainerStatusObject)[keyof typeof DataSourceContainerStatusObject];
export type DataSourceHoldStatus = (typeof DataSourceHoldStatusObject)[keyof typeof DataSourceHoldStatusObject];
export type DataSourceScopes = (typeof DataSourceScopesObject)[keyof typeof DataSourceScopesObject];
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoAddToReviewSetOperation(addToReviewSetOperation?: Partial<AddToReviewSetOperation> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoCaseCollectionResponse(caseCollectionResponse?: Partial<CaseCollectionResponse> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoCaseEscaped(caseEscaped?: Partial<CaseEscaped> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoCaseExportOperation(caseExportOperation?: Partial<CaseExportOperation> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoCaseExportOperationCollectionResponse(caseExportOperationCollectionResponse?: Partial<CaseExportOperationCollectionResponse> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoCaseHoldOperation(caseHoldOperation?: Partial<CaseHoldOperation> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoCaseIndexOperation(caseIndexOperation?: Partial<CaseIndexOperation> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoCaseOperation(caseOperation?: Partial<CaseOperation> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoCaseOperationCollectionResponse(caseOperationCollectionResponse?: Partial<CaseOperationCollectionResponse> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoCaseSettings(caseSettings?: Partial<CaseSettings> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoCustodian(custodian?: Partial<Custodian> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoCustodianCollectionResponse(custodianCollectionResponse?: Partial<CustodianCollectionResponse> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoDataSource(dataSource?: Partial<DataSource> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoDataSourceCollectionResponse(dataSourceCollectionResponse?: Partial<DataSourceCollectionResponse> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoDataSourceContainer(dataSourceContainer?: Partial<DataSourceContainer> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoEdiscoveryroot(ediscoveryroot?: Partial<Ediscoveryroot> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoEstimateStatisticsOperation(estimateStatisticsOperation?: Partial<EstimateStatisticsOperation> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoLegalHold(legalHold?: Partial<LegalHold> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoLegalHoldCollectionResponse(legalHoldCollectionResponse?: Partial<LegalHoldCollectionResponse> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoNoncustodialDataSource(noncustodialDataSource?: Partial<NoncustodialDataSource> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoNoncustodialDataSourceCollectionResponse(noncustodialDataSourceCollectionResponse?: Partial<NoncustodialDataSourceCollectionResponse> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoOcrSettings(ocrSettings?: Partial<OcrSettings> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoPurgeDataOperation(purgeDataOperation?: Partial<PurgeDataOperation> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoRedundancyDetectionSettings(redundancyDetectionSettings?: Partial<RedundancyDetectionSettings> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoReviewSet(reviewSet?: Partial<ReviewSet> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoReviewSetCollectionResponse(reviewSetCollectionResponse?: Partial<ReviewSetCollectionResponse> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoReviewSetQuery(reviewSetQuery?: Partial<ReviewSetQuery> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoReviewSetQueryCollectionResponse(reviewSetQueryCollectionResponse?: Partial<ReviewSetQueryCollectionResponse> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoSiteSource(siteSource?: Partial<SiteSource> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoSiteSourceCollectionResponse(siteSourceCollectionResponse?: Partial<SiteSourceCollectionResponse> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoSourceCollection(sourceCollection?: Partial<SourceCollection> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoSourceCollectionCollectionResponse(sourceCollectionCollectionResponse?: Partial<SourceCollectionCollectionResponse> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoTag(tag?: Partial<Tag> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoTagCollectionResponse(tagCollectionResponse?: Partial<TagCollectionResponse> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoTagOperation(tagOperation?: Partial<TagOperation> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoTopicModelingSettings(topicModelingSettings?: Partial<TopicModelingSettings> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoUnifiedGroupSource(unifiedGroupSource?: Partial<UnifiedGroupSource> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoUnifiedGroupSourceCollectionResponse(unifiedGroupSourceCollectionResponse?: Partial<UnifiedGroupSourceCollectionResponse> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoUserSource(userSource?: Partial<UserSource> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoUserSourceCollectionResponse(userSourceCollectionResponse?: Partial<UserSourceCollectionResponse> | undefined): Record<string, (node: ParseNode) => void>;
export interface Ediscoveryroot extends Entity, Parsable {
    /**
     * The cases property
     */
    cases?: CaseEscaped[] | null;
}
export interface EstimateStatisticsOperation extends CaseOperation, Parsable {
    /**
     * The estimated count of items for the sourceCollection that matched the content query.
     */
    indexedItemCount?: number | null;
    /**
     * The estimated size of items for the sourceCollection that matched the content query.
     */
    indexedItemsSize?: number | null;
    /**
     * The number of mailboxes that had search hits.
     */
    mailboxCount?: number | null;
    /**
     * The number of mailboxes that had search hits.
     */
    siteCount?: number | null;
    /**
     * eDiscovery collection, commonly known as a search.
     */
    sourceCollection?: SourceCollection | null;
    /**
     * The estimated count of unindexed items for the collection.
     */
    unindexedItemCount?: number | null;
    /**
     * The estimated size of unindexed items for the collection.
     */
    unindexedItemsSize?: number | null;
}
export type ExportFileStructure = (typeof ExportFileStructureObject)[keyof typeof ExportFileStructureObject];
export type ExportOptions = (typeof ExportOptionsObject)[keyof typeof ExportOptionsObject];
export interface LegalHold extends Entity, Parsable {
    /**
     * KQL query that specifies content to be held in the specified locations. To learn more, see Keyword queries and search conditions for Content Search and eDiscovery.  To hold all content in the specified locations, leave contentQuery blank.
     */
    contentQuery?: string | null;
    /**
     * The user who created the legal hold.
     */
    createdBy?: IdentitySet | null;
    /**
     * The date and time the legal hold was created.
     */
    createdDateTime?: Date | null;
    /**
     * The legal hold description.
     */
    description?: string | null;
    /**
     * The display name of the legal hold.
     */
    displayName?: string | null;
    /**
     * Lists any errors that happened while placing the hold.
     */
    errors?: string[] | null;
    /**
     * Indicates whether the hold is enabled and actively holding content.
     */
    isEnabled?: boolean | null;
    /**
     * the user who last modified the legal hold.
     */
    lastModifiedBy?: IdentitySet | null;
    /**
     * The date and time the legal hold was last modified.
     */
    lastModifiedDateTime?: Date | null;
    /**
     * Data source entity for SharePoint sites associated with the legal hold.
     */
    siteSources?: SiteSource[] | null;
    /**
     * The status of the legal hold. Possible values are: Pending, Error, Success, UnknownFutureValue.
     */
    status?: LegalHoldStatus | null;
    /**
     * The unifiedGroupSources property
     */
    unifiedGroupSources?: UnifiedGroupSource[] | null;
    /**
     * Data source entity for a the legal hold. This is the container for a mailbox and OneDrive for Business site.
     */
    userSources?: UserSource[] | null;
}
export interface LegalHoldCollectionResponse extends BaseCollectionPaginationCountResponse, Parsable {
    /**
     * The value property
     */
    value?: LegalHold[] | null;
}
export type LegalHoldStatus = (typeof LegalHoldStatusObject)[keyof typeof LegalHoldStatusObject];
export interface NoncustodialDataSource extends DataSourceContainer, Parsable {
    /**
     * Indicates if hold is applied to noncustodial data source (such as mailbox or site).
     */
    applyHoldToSource?: boolean | null;
    /**
     * User source or SharePoint site data source as noncustodial data source.
     */
    dataSource?: DataSource | null;
}
export interface NoncustodialDataSourceCollectionResponse extends BaseCollectionPaginationCountResponse, Parsable {
    /**
     * The value property
     */
    value?: NoncustodialDataSource[] | null;
}
export interface OcrSettings extends AdditionalDataHolder, BackedModel, Parsable {
    /**
     * Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well.
     */
    additionalData?: Record<string, unknown>;
    /**
     * Stores model information.
     */
    backingStoreEnabled?: boolean | null;
    /**
     * Indicates whether or not OCR is enabled for the case.
     */
    isEnabled?: boolean | null;
    /**
     * Maximum image size that will be processed in KB).
     */
    maxImageSize?: number | null;
    /**
     * The OdataType property
     */
    odataType?: string | null;
    /**
     * The timeout duration for the OCR engine. A longer timeout may increase success of OCR, but may add to the total processing time.
     */
    timeout?: Duration | null;
}
export interface PurgeDataOperation extends CaseOperation, Parsable {
}
export interface RedundancyDetectionSettings extends AdditionalDataHolder, BackedModel, Parsable {
    /**
     * Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well.
     */
    additionalData?: Record<string, unknown>;
    /**
     * Stores model information.
     */
    backingStoreEnabled?: boolean | null;
    /**
     * Indicates whether email threading and near duplicate detection are enabled.
     */
    isEnabled?: boolean | null;
    /**
     * Specifies the maximum number of words used for email threading and near duplicate detection. To learn more, see Minimum/maximum number of words.
     */
    maxWords?: number | null;
    /**
     * Specifies the minimum number of words used for email threading and near duplicate detection. To learn more, see Minimum/maximum number of words.
     */
    minWords?: number | null;
    /**
     * The OdataType property
     */
    odataType?: string | null;
    /**
     * Specifies the similarity level for documents to be put in the same near duplicate set. To learn more, see Document and email similarity threshold.
     */
    similarityThreshold?: number | null;
}
export interface ReviewSet extends Entity, Parsable {
    /**
     * The user who created the review set. Read-only.
     */
    createdBy?: IdentitySet | null;
    /**
     * The datetime when the review set was created. The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Read-only.
     */
    createdDateTime?: Date | null;
    /**
     * The review set name. The name is unique with a maximum limit of 64 characters.
     */
    displayName?: string | null;
    /**
     * The queries property
     */
    queries?: ReviewSetQuery[] | null;
}
export interface ReviewSetCollectionResponse extends BaseCollectionPaginationCountResponse, Parsable {
    /**
     * The value property
     */
    value?: ReviewSet[] | null;
}
export interface ReviewSetQuery extends Entity, Parsable {
    /**
     * The user who created the query.
     */
    createdBy?: IdentitySet | null;
    /**
     * The time and date when the query was created. The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z
     */
    createdDateTime?: Date | null;
    /**
     * The name of the query.
     */
    displayName?: string | null;
    /**
     * The user who last modified the query.
     */
    lastModifiedBy?: IdentitySet | null;
    /**
     * The date and time the query was last modified. The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z
     */
    lastModifiedDateTime?: Date | null;
    /**
     * The query string in KQL (Keyword Query Language) query. For details, see Document metadata fields in Advanced eDiscovery.  This field maps directly to the keywords condition.  You can refine searches by using fields listed in the searchable field name paired with values; for example, subject:'Quarterly Financials' AND Date>=06/01/2016 AND Date<=07/01/2016.
     */
    query?: string | null;
}
export interface ReviewSetQueryCollectionResponse extends BaseCollectionPaginationCountResponse, Parsable {
    /**
     * The value property
     */
    value?: ReviewSetQuery[] | null;
}
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeAddToReviewSetOperation(writer: SerializationWriter, addToReviewSetOperation?: Partial<AddToReviewSetOperation> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeCaseCollectionResponse(writer: SerializationWriter, caseCollectionResponse?: Partial<CaseCollectionResponse> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeCaseEscaped(writer: SerializationWriter, caseEscaped?: Partial<CaseEscaped> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeCaseExportOperation(writer: SerializationWriter, caseExportOperation?: Partial<CaseExportOperation> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeCaseExportOperationCollectionResponse(writer: SerializationWriter, caseExportOperationCollectionResponse?: Partial<CaseExportOperationCollectionResponse> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeCaseHoldOperation(writer: SerializationWriter, caseHoldOperation?: Partial<CaseHoldOperation> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeCaseIndexOperation(writer: SerializationWriter, caseIndexOperation?: Partial<CaseIndexOperation> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeCaseOperation(writer: SerializationWriter, caseOperation?: Partial<CaseOperation> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeCaseOperationCollectionResponse(writer: SerializationWriter, caseOperationCollectionResponse?: Partial<CaseOperationCollectionResponse> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeCaseSettings(writer: SerializationWriter, caseSettings?: Partial<CaseSettings> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeCustodian(writer: SerializationWriter, custodian?: Partial<Custodian> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeCustodianCollectionResponse(writer: SerializationWriter, custodianCollectionResponse?: Partial<CustodianCollectionResponse> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeDataSource(writer: SerializationWriter, dataSource?: Partial<DataSource> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeDataSourceCollectionResponse(writer: SerializationWriter, dataSourceCollectionResponse?: Partial<DataSourceCollectionResponse> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeDataSourceContainer(writer: SerializationWriter, dataSourceContainer?: Partial<DataSourceContainer> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeEdiscoveryroot(writer: SerializationWriter, ediscoveryroot?: Partial<Ediscoveryroot> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeEstimateStatisticsOperation(writer: SerializationWriter, estimateStatisticsOperation?: Partial<EstimateStatisticsOperation> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeLegalHold(writer: SerializationWriter, legalHold?: Partial<LegalHold> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeLegalHoldCollectionResponse(writer: SerializationWriter, legalHoldCollectionResponse?: Partial<LegalHoldCollectionResponse> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeNoncustodialDataSource(writer: SerializationWriter, noncustodialDataSource?: Partial<NoncustodialDataSource> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeNoncustodialDataSourceCollectionResponse(writer: SerializationWriter, noncustodialDataSourceCollectionResponse?: Partial<NoncustodialDataSourceCollectionResponse> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeOcrSettings(writer: SerializationWriter, ocrSettings?: Partial<OcrSettings> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializePurgeDataOperation(writer: SerializationWriter, purgeDataOperation?: Partial<PurgeDataOperation> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeRedundancyDetectionSettings(writer: SerializationWriter, redundancyDetectionSettings?: Partial<RedundancyDetectionSettings> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeReviewSet(writer: SerializationWriter, reviewSet?: Partial<ReviewSet> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeReviewSetCollectionResponse(writer: SerializationWriter, reviewSetCollectionResponse?: Partial<ReviewSetCollectionResponse> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeReviewSetQuery(writer: SerializationWriter, reviewSetQuery?: Partial<ReviewSetQuery> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeReviewSetQueryCollectionResponse(writer: SerializationWriter, reviewSetQueryCollectionResponse?: Partial<ReviewSetQueryCollectionResponse> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeSiteSource(writer: SerializationWriter, siteSource?: Partial<SiteSource> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeSiteSourceCollectionResponse(writer: SerializationWriter, siteSourceCollectionResponse?: Partial<SiteSourceCollectionResponse> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeSourceCollection(writer: SerializationWriter, sourceCollection?: Partial<SourceCollection> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeSourceCollectionCollectionResponse(writer: SerializationWriter, sourceCollectionCollectionResponse?: Partial<SourceCollectionCollectionResponse> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeTag(writer: SerializationWriter, tag?: Partial<Tag> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeTagCollectionResponse(writer: SerializationWriter, tagCollectionResponse?: Partial<TagCollectionResponse> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeTagOperation(writer: SerializationWriter, tagOperation?: Partial<TagOperation> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeTopicModelingSettings(writer: SerializationWriter, topicModelingSettings?: Partial<TopicModelingSettings> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeUnifiedGroupSource(writer: SerializationWriter, unifiedGroupSource?: Partial<UnifiedGroupSource> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeUnifiedGroupSourceCollectionResponse(writer: SerializationWriter, unifiedGroupSourceCollectionResponse?: Partial<UnifiedGroupSourceCollectionResponse> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeUserSource(writer: SerializationWriter, userSource?: Partial<UserSource> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeUserSourceCollectionResponse(writer: SerializationWriter, userSourceCollectionResponse?: Partial<UserSourceCollectionResponse> | undefined | null): void;
export interface SiteSource extends DataSource, Parsable {
    /**
     * The site property
     */
    site?: Site | null;
}
export interface SiteSourceCollectionResponse extends BaseCollectionPaginationCountResponse, Parsable {
    /**
     * The value property
     */
    value?: SiteSource[] | null;
}
export interface SourceCollection extends Entity, Parsable {
    /**
     * Adds an additional source to the sourceCollection.
     */
    additionalSources?: DataSource[] | null;
    /**
     * Adds the results of the sourceCollection to the specified reviewSet.
     */
    addToReviewSetOperation?: AddToReviewSetOperation | null;
    /**
     * The query string in KQL (Keyword Query Language) query. For details, see Keyword queries and search conditions for Content Search and eDiscovery. You can refine searches by using fields paired with values; for example, subject:'Quarterly Financials' AND Date>=06/01/2016 AND Date<=07/01/2016.
     */
    contentQuery?: string | null;
    /**
     * The user who created the sourceCollection.
     */
    createdBy?: IdentitySet | null;
    /**
     * The date and time the sourceCollection was created.
     */
    createdDateTime?: Date | null;
    /**
     * Custodian sources that are included in the sourceCollection.
     */
    custodianSources?: DataSource[] | null;
    /**
     * When specified, the collection spans across a service for an entire workload. Possible values are: none, allTenantMailboxes, allTenantSites, allCaseCustodians, allCaseNoncustodialDataSources.
     */
    dataSourceScopes?: DataSourceScopes[] | null;
    /**
     * The description of the sourceCollection.
     */
    description?: string | null;
    /**
     * The display name of the sourceCollection.
     */
    displayName?: string | null;
    /**
     * The last estimate operation associated with the sourceCollection.
     */
    lastEstimateStatisticsOperation?: EstimateStatisticsOperation | null;
    /**
     * The last user who modified the sourceCollection.
     */
    lastModifiedBy?: IdentitySet | null;
    /**
     * The last date and time the sourceCollection was modified.
     */
    lastModifiedDateTime?: Date | null;
    /**
     * noncustodialDataSource sources that are included in the sourceCollection
     */
    noncustodialSources?: NoncustodialDataSource[] | null;
}
export interface SourceCollectionCollectionResponse extends BaseCollectionPaginationCountResponse, Parsable {
    /**
     * The value property
     */
    value?: SourceCollection[] | null;
}
export type SourceType = (typeof SourceTypeObject)[keyof typeof SourceTypeObject];
export interface Tag extends Entity, Parsable {
    /**
     * Indicates whether a single or multiple child tags can be associated with a document. Possible values are: One, Many.  This value controls whether the UX presents the tags as checkboxes or a radio button group.
     */
    childSelectability?: ChildSelectability | null;
    /**
     * Returns the tags that are a child of a tag.
     */
    childTags?: Tag[] | null;
    /**
     * The user who created the tag.
     */
    createdBy?: IdentitySet | null;
    /**
     * The description for the tag.
     */
    description?: string | null;
    /**
     * Display name of the tag.
     */
    displayName?: string | null;
    /**
     * The date and time the tag was last modified.
     */
    lastModifiedDateTime?: Date | null;
    /**
     * Returns the parent tag of the specified tag.
     */
    parent?: Tag | null;
}
export interface TagCollectionResponse extends BaseCollectionPaginationCountResponse, Parsable {
    /**
     * The value property
     */
    value?: Tag[] | null;
}
export interface TagOperation extends CaseOperation, Parsable {
}
export interface TopicModelingSettings extends AdditionalDataHolder, BackedModel, Parsable {
    /**
     * Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well.
     */
    additionalData?: Record<string, unknown>;
    /**
     * Stores model information.
     */
    backingStoreEnabled?: boolean | null;
    /**
     * To learn more, see Adjust maximum number of themes dynamically.
     */
    dynamicallyAdjustTopicCount?: boolean | null;
    /**
     * To learn more, see Include numbers in themes.
     */
    ignoreNumbers?: boolean | null;
    /**
     * Indicates whether themes are enabled for the case.
     */
    isEnabled?: boolean | null;
    /**
     * The OdataType property
     */
    odataType?: string | null;
    /**
     * To learn more, see Maximum number of themes.
     */
    topicCount?: number | null;
}
export interface UnifiedGroupSource extends DataSource, Parsable {
    /**
     * The group property
     */
    group?: Group | null;
    /**
     * Specifies which sources are included in this group. Possible values are: mailbox, site.
     */
    includedSources?: SourceType[] | null;
}
export interface UnifiedGroupSourceCollectionResponse extends BaseCollectionPaginationCountResponse, Parsable {
    /**
     * The value property
     */
    value?: UnifiedGroupSource[] | null;
}
export interface UserSource extends DataSource, Parsable {
    /**
     * Email address of the user's mailbox.
     */
    email?: string | null;
    /**
     * Specifies which sources are included in this group. Possible values are: mailbox, site.
     */
    includedSources?: SourceType[] | null;
    /**
     * The URL of the user's OneDrive for Business site. Read-only.
     */
    siteWebUrl?: string | null;
}
export interface UserSourceCollectionResponse extends BaseCollectionPaginationCountResponse, Parsable {
    /**
     * The value property
     */
    value?: UserSource[] | null;
}
export declare const AdditionalDataOptionsObject: {
    readonly AllVersions: "allVersions";
    readonly LinkedFiles: "linkedFiles";
    readonly UnknownFutureValue: "unknownFutureValue";
};
export declare const CaseActionObject: {
    readonly ContentExport: "contentExport";
    readonly ApplyTags: "applyTags";
    readonly ConvertToPdf: "convertToPdf";
    readonly Index: "index";
    readonly EstimateStatistics: "estimateStatistics";
    readonly AddToReviewSet: "addToReviewSet";
    readonly HoldUpdate: "holdUpdate";
    readonly UnknownFutureValue: "unknownFutureValue";
    readonly PurgeData: "purgeData";
};
export declare const CaseOperationStatusObject: {
    readonly NotStarted: "notStarted";
    readonly SubmissionFailed: "submissionFailed";
    readonly Running: "running";
    readonly Succeeded: "succeeded";
    readonly PartiallySucceeded: "partiallySucceeded";
    readonly Failed: "failed";
};
export declare const CaseStatusObject: {
    readonly Unknown: "unknown";
    readonly Active: "active";
    readonly PendingDelete: "pendingDelete";
    readonly Closing: "closing";
    readonly Closed: "closed";
    readonly ClosedWithError: "closedWithError";
};
export declare const ChildSelectabilityObject: {
    readonly One: "One";
    readonly Many: "Many";
};
export declare const DataSourceContainerStatusObject: {
    readonly Active: "Active";
    readonly Released: "Released";
    readonly UnknownFutureValue: "UnknownFutureValue";
};
export declare const DataSourceHoldStatusObject: {
    readonly NotApplied: "notApplied";
    readonly Applied: "applied";
    readonly Applying: "applying";
    readonly Removing: "removing";
    readonly Partial: "partial";
    readonly UnknownFutureValue: "unknownFutureValue";
};
export declare const DataSourceScopesObject: {
    readonly None: "none";
    readonly AllTenantMailboxes: "allTenantMailboxes";
    readonly AllTenantSites: "allTenantSites";
    readonly AllCaseCustodians: "allCaseCustodians";
    readonly AllCaseNoncustodialDataSources: "allCaseNoncustodialDataSources";
    readonly UnknownFutureValue: "unknownFutureValue";
};
export declare const ExportFileStructureObject: {
    readonly None: "none";
    readonly Directory: "directory";
    readonly Pst: "pst";
    readonly UnknownFutureValue: "unknownFutureValue";
};
export declare const ExportOptionsObject: {
    readonly OriginalFiles: "originalFiles";
    readonly Text: "text";
    readonly PdfReplacement: "pdfReplacement";
    readonly FileInfo: "fileInfo";
    readonly Tags: "tags";
    readonly UnknownFutureValue: "unknownFutureValue";
};
export declare const LegalHoldStatusObject: {
    readonly Pending: "Pending";
    readonly ErrorEscaped: "Error";
    readonly Success: "Success";
    readonly UnknownFutureValue: "UnknownFutureValue";
};
export declare const SourceTypeObject: {
    readonly Mailbox: "mailbox";
    readonly Site: "site";
};
//# sourceMappingURL=index.d.ts.map