import * as HttpClient from "effect/unstable/http/HttpClient";
import * as S from "effect/Schema";
import * as stream from "effect/Stream";
import * as API from "../client/api.ts";
import type { Credentials } from "../credentials.ts";
import type { CommonErrors } from "../errors.ts";
import type { Region } from "../region.ts";
export type DatastoreName = string;
export type EncryptionKeyID = string;
export type ClientTokenString = string;
export type TagKey = string;
export type TagValue = string;
export type ConfigurationMetadata = string;
export type LambdaArn = string;
export type DatastoreId = string;
export type DatastoreArn = string;
export type BoundedLengthString = string;
export type ErrorMessage = string;
export type JobId = string;
export type JobName = string;
export type S3Uri = string;
export type IamRoleArn = string;
export type Message = string;
export type NextToken = string;
export type MaxResultsInteger = number;
export type AmazonResourceName = string;
export type FHIRVersion = "R4" | (string & {});
export declare const FHIRVersion: S.String;
export type CmkType = "CUSTOMER_MANAGED_KMS_KEY" | "AWS_OWNED_KMS_KEY" | (string & {});
export declare const CmkType: S.String;
export interface KmsEncryptionConfig {
    CmkType: CmkType;
    KmsKeyId?: string;
}
export declare const KmsEncryptionConfig: S.Schema<KmsEncryptionConfig>;
export interface SseConfiguration {
    KmsEncryptionConfig: KmsEncryptionConfig;
}
export declare const SseConfiguration: S.Schema<SseConfiguration>;
export type PreloadDataType = "SYNTHEA" | (string & {});
export declare const PreloadDataType: S.String;
export interface PreloadDataConfig {
    PreloadDataType: PreloadDataType;
}
export declare const PreloadDataConfig: S.Schema<PreloadDataConfig>;
export interface Tag {
    Key: string;
    Value: string;
}
export declare const Tag: S.Schema<Tag>;
export type TagList = Tag[];
export declare const TagList: S.$Array<S.Schema<Tag>>;
export type AuthorizationStrategy = "SMART_ON_FHIR_V1" | "SMART_ON_FHIR" | "AWS_AUTH" | (string & {});
export declare const AuthorizationStrategy: S.String;
export interface IdentityProviderConfiguration {
    AuthorizationStrategy: AuthorizationStrategy;
    FineGrainedAuthorizationEnabled?: boolean;
    Metadata?: string;
    IdpLambdaArn?: string;
}
export declare const IdentityProviderConfiguration: S.Schema<IdentityProviderConfiguration>;
export interface CreateFHIRDatastoreRequest {
    DatastoreName?: string;
    DatastoreTypeVersion: FHIRVersion;
    SseConfiguration?: SseConfiguration;
    PreloadDataConfig?: PreloadDataConfig;
    ClientToken?: string;
    Tags?: Tag[];
    IdentityProviderConfiguration?: IdentityProviderConfiguration;
}
export declare const CreateFHIRDatastoreRequest: S.Schema<CreateFHIRDatastoreRequest>;
export type DatastoreStatus = "CREATING" | "ACTIVE" | "DELETING" | "DELETED" | "CREATE_FAILED" | (string & {});
export declare const DatastoreStatus: S.String;
export interface CreateFHIRDatastoreResponse {
    DatastoreId: string;
    DatastoreArn: string;
    DatastoreStatus: DatastoreStatus;
    DatastoreEndpoint: string;
}
export declare const CreateFHIRDatastoreResponse: S.Schema<CreateFHIRDatastoreResponse>;
export interface DeleteFHIRDatastoreRequest {
    DatastoreId: string;
}
export declare const DeleteFHIRDatastoreRequest: S.Schema<DeleteFHIRDatastoreRequest>;
export interface DeleteFHIRDatastoreResponse {
    DatastoreId: string;
    DatastoreArn: string;
    DatastoreStatus: DatastoreStatus;
    DatastoreEndpoint: string;
}
export declare const DeleteFHIRDatastoreResponse: S.Schema<DeleteFHIRDatastoreResponse>;
export interface DescribeFHIRDatastoreRequest {
    DatastoreId: string;
}
export declare const DescribeFHIRDatastoreRequest: S.Schema<DescribeFHIRDatastoreRequest>;
export type ErrorCategory = "RETRYABLE_ERROR" | "NON_RETRYABLE_ERROR" | (string & {});
export declare const ErrorCategory: S.String;
export interface ErrorCause {
    ErrorMessage?: string;
    ErrorCategory?: ErrorCategory;
}
export declare const ErrorCause: S.Schema<ErrorCause>;
export interface DatastoreProperties {
    DatastoreId: string;
    DatastoreArn: string;
    DatastoreName?: string;
    DatastoreStatus: DatastoreStatus;
    CreatedAt?: Date;
    DatastoreTypeVersion: FHIRVersion;
    DatastoreEndpoint: string;
    SseConfiguration?: SseConfiguration;
    PreloadDataConfig?: PreloadDataConfig;
    IdentityProviderConfiguration?: IdentityProviderConfiguration;
    ErrorCause?: ErrorCause;
}
export declare const DatastoreProperties: S.Schema<DatastoreProperties>;
export interface DescribeFHIRDatastoreResponse {
    DatastoreProperties: DatastoreProperties;
}
export declare const DescribeFHIRDatastoreResponse: S.Schema<DescribeFHIRDatastoreResponse>;
export interface DescribeFHIRExportJobRequest {
    DatastoreId: string;
    JobId: string;
}
export declare const DescribeFHIRExportJobRequest: S.Schema<DescribeFHIRExportJobRequest>;
export type JobStatus = "SUBMITTED" | "QUEUED" | "IN_PROGRESS" | "COMPLETED_WITH_ERRORS" | "COMPLETED" | "FAILED" | "CANCEL_SUBMITTED" | "CANCEL_IN_PROGRESS" | "CANCEL_COMPLETED" | "CANCEL_FAILED" | (string & {});
export declare const JobStatus: S.String;
export interface S3Configuration {
    S3Uri: string;
    KmsKeyId: string;
}
export declare const S3Configuration: S.Schema<S3Configuration>;
export type OutputDataConfig = {
    S3Configuration: S3Configuration;
};
export declare const OutputDataConfig: S.Union<readonly [S.Struct<{
    readonly S3Configuration: S.Schema<S3Configuration>;
}>]>;
export interface ExportJobProperties {
    JobId: string;
    JobName?: string;
    JobStatus: JobStatus;
    SubmitTime: Date;
    EndTime?: Date;
    DatastoreId: string;
    OutputDataConfig: OutputDataConfig;
    DataAccessRoleArn?: string;
    Message?: string;
}
export declare const ExportJobProperties: S.Schema<ExportJobProperties>;
export interface DescribeFHIRExportJobResponse {
    ExportJobProperties: ExportJobProperties;
}
export declare const DescribeFHIRExportJobResponse: S.Schema<DescribeFHIRExportJobResponse>;
export interface DescribeFHIRImportJobRequest {
    DatastoreId: string;
    JobId: string;
}
export declare const DescribeFHIRImportJobRequest: S.Schema<DescribeFHIRImportJobRequest>;
export type InputDataConfig = {
    S3Uri: string;
};
export declare const InputDataConfig: S.Union<readonly [S.Struct<{
    readonly S3Uri: S.String;
}>]>;
export interface JobProgressReport {
    TotalNumberOfScannedFiles?: number;
    TotalSizeOfScannedFilesInMB?: number;
    TotalNumberOfImportedFiles?: number;
    TotalNumberOfResourcesScanned?: number;
    TotalNumberOfResourcesImported?: number;
    TotalNumberOfResourcesWithCustomerError?: number;
    TotalNumberOfFilesReadWithCustomerError?: number;
    Throughput?: number;
}
export declare const JobProgressReport: S.Schema<JobProgressReport>;
export type ValidationLevel = "strict" | "structure-only" | "minimal" | (string & {});
export declare const ValidationLevel: S.String;
export interface ImportJobProperties {
    JobId: string;
    JobName?: string;
    JobStatus: JobStatus;
    SubmitTime: Date;
    EndTime?: Date;
    DatastoreId: string;
    InputDataConfig: InputDataConfig;
    JobOutputDataConfig?: OutputDataConfig;
    JobProgressReport?: JobProgressReport;
    DataAccessRoleArn?: string;
    Message?: string;
    ValidationLevel?: ValidationLevel;
}
export declare const ImportJobProperties: S.Schema<ImportJobProperties>;
export interface DescribeFHIRImportJobResponse {
    ImportJobProperties: ImportJobProperties;
}
export declare const DescribeFHIRImportJobResponse: S.Schema<DescribeFHIRImportJobResponse>;
export interface DatastoreFilter {
    DatastoreName?: string;
    DatastoreStatus?: DatastoreStatus;
    CreatedBefore?: Date;
    CreatedAfter?: Date;
}
export declare const DatastoreFilter: S.Schema<DatastoreFilter>;
export interface ListFHIRDatastoresRequest {
    Filter?: DatastoreFilter;
    NextToken?: string;
    MaxResults?: number;
}
export declare const ListFHIRDatastoresRequest: S.Schema<ListFHIRDatastoresRequest>;
export type DatastorePropertiesList = DatastoreProperties[];
export declare const DatastorePropertiesList: S.$Array<S.Schema<DatastoreProperties>>;
export interface ListFHIRDatastoresResponse {
    DatastorePropertiesList: DatastoreProperties[];
    NextToken?: string;
}
export declare const ListFHIRDatastoresResponse: S.Schema<ListFHIRDatastoresResponse>;
export interface ListFHIRExportJobsRequest {
    DatastoreId: string;
    NextToken?: string;
    MaxResults?: number;
    JobName?: string;
    JobStatus?: JobStatus;
    SubmittedBefore?: Date;
    SubmittedAfter?: Date;
}
export declare const ListFHIRExportJobsRequest: S.Schema<ListFHIRExportJobsRequest>;
export type ExportJobPropertiesList = ExportJobProperties[];
export declare const ExportJobPropertiesList: S.$Array<S.Schema<ExportJobProperties>>;
export interface ListFHIRExportJobsResponse {
    ExportJobPropertiesList: ExportJobProperties[];
    NextToken?: string;
}
export declare const ListFHIRExportJobsResponse: S.Schema<ListFHIRExportJobsResponse>;
export interface ListFHIRImportJobsRequest {
    DatastoreId: string;
    NextToken?: string;
    MaxResults?: number;
    JobName?: string;
    JobStatus?: JobStatus;
    SubmittedBefore?: Date;
    SubmittedAfter?: Date;
}
export declare const ListFHIRImportJobsRequest: S.Schema<ListFHIRImportJobsRequest>;
export type ImportJobPropertiesList = ImportJobProperties[];
export declare const ImportJobPropertiesList: S.$Array<S.Schema<ImportJobProperties>>;
export interface ListFHIRImportJobsResponse {
    ImportJobPropertiesList: ImportJobProperties[];
    NextToken?: string;
}
export declare const ListFHIRImportJobsResponse: S.Schema<ListFHIRImportJobsResponse>;
export interface ListTagsForResourceRequest {
    ResourceARN: string;
}
export declare const ListTagsForResourceRequest: S.Schema<ListTagsForResourceRequest>;
export interface ListTagsForResourceResponse {
    Tags?: Tag[];
}
export declare const ListTagsForResourceResponse: S.Schema<ListTagsForResourceResponse>;
export interface StartFHIRExportJobRequest {
    JobName?: string;
    OutputDataConfig: OutputDataConfig;
    DatastoreId: string;
    DataAccessRoleArn: string;
    ClientToken?: string;
}
export declare const StartFHIRExportJobRequest: S.Schema<StartFHIRExportJobRequest>;
export interface StartFHIRExportJobResponse {
    JobId: string;
    JobStatus: JobStatus;
    DatastoreId?: string;
}
export declare const StartFHIRExportJobResponse: S.Schema<StartFHIRExportJobResponse>;
export interface StartFHIRImportJobRequest {
    JobName?: string;
    InputDataConfig: InputDataConfig;
    JobOutputDataConfig: OutputDataConfig;
    DatastoreId: string;
    DataAccessRoleArn: string;
    ClientToken?: string;
    ValidationLevel?: ValidationLevel;
}
export declare const StartFHIRImportJobRequest: S.Schema<StartFHIRImportJobRequest>;
export interface StartFHIRImportJobResponse {
    JobId: string;
    JobStatus: JobStatus;
    DatastoreId?: string;
}
export declare const StartFHIRImportJobResponse: S.Schema<StartFHIRImportJobResponse>;
export interface TagResourceRequest {
    ResourceARN: string;
    Tags: Tag[];
}
export declare const TagResourceRequest: S.Schema<TagResourceRequest>;
export interface TagResourceResponse {
}
export declare const TagResourceResponse: S.Schema<TagResourceResponse>;
export type TagKeyList = string[];
export declare const TagKeyList: S.$Array<S.String>;
export interface UntagResourceRequest {
    ResourceARN: string;
    TagKeys: string[];
}
export declare const UntagResourceRequest: S.Schema<UntagResourceRequest>;
export interface UntagResourceResponse {
}
export declare const UntagResourceResponse: S.Schema<UntagResourceResponse>;
declare const AccessDeniedException_base: S.Class<AccessDeniedException, S.TaggedStruct<"AccessDeniedException", {
    readonly Message: S.optional<S.String>;
}>, import("effect/Cause").YieldableError> & (new (...args: any[]) => {
    "@distilled.cloud/error/categories": {
        AuthError: true;
    };
});
export declare class AccessDeniedException extends AccessDeniedException_base {
}
declare const InternalServerException_base: S.Class<InternalServerException, S.TaggedStruct<"InternalServerException", {
    readonly Message: S.optional<S.String>;
}>, import("effect/Cause").YieldableError> & (new (...args: any[]) => {
    "@distilled.cloud/error/categories": {
        ServerError: true;
    };
});
export declare class InternalServerException extends InternalServerException_base {
}
declare const ThrottlingException_base: S.Class<ThrottlingException, S.TaggedStruct<"ThrottlingException", {
    readonly Message: S.optional<S.String>;
}>, import("effect/Cause").YieldableError> & (new (...args: any[]) => {
    "@distilled.cloud/error/categories": {
        ThrottlingError: true;
    };
});
export declare class ThrottlingException extends ThrottlingException_base {
}
declare const ValidationException_base: S.Class<ValidationException, S.TaggedStruct<"ValidationException", {
    readonly Message: S.optional<S.String>;
}>, import("effect/Cause").YieldableError> & (new (...args: any[]) => {
    "@distilled.cloud/error/categories": {
        BadRequestError: true;
    };
});
export declare class ValidationException extends ValidationException_base {
}
declare const ConflictException_base: S.Class<ConflictException, S.TaggedStruct<"ConflictException", {
    readonly Message: S.optional<S.String>;
}>, import("effect/Cause").YieldableError> & (new (...args: any[]) => {
    "@distilled.cloud/error/categories": {
        ConflictError: true;
    };
});
export declare class ConflictException extends ConflictException_base {
}
declare const ResourceNotFoundException_base: S.Class<ResourceNotFoundException, S.TaggedStruct<"ResourceNotFoundException", {
    readonly Message: S.optional<S.String>;
}>, import("effect/Cause").YieldableError> & (new (...args: any[]) => {
    "@distilled.cloud/error/categories": {
        BadRequestError: true;
    };
});
export declare class ResourceNotFoundException extends ResourceNotFoundException_base {
}
export type CreateFHIRDatastoreError = AccessDeniedException | InternalServerException | ThrottlingException | ValidationException | CommonErrors;
/**
 * Create a FHIR-enabled data store.
 */
export declare const createFHIRDatastore: API.OperationMethod<CreateFHIRDatastoreRequest, CreateFHIRDatastoreResponse, CreateFHIRDatastoreError, Credentials | Region | HttpClient.HttpClient>;
export type DeleteFHIRDatastoreError = AccessDeniedException | ConflictException | InternalServerException | ResourceNotFoundException | ThrottlingException | ValidationException | CommonErrors;
/**
 * Delete a FHIR-enabled data store.
 */
export declare const deleteFHIRDatastore: API.OperationMethod<DeleteFHIRDatastoreRequest, DeleteFHIRDatastoreResponse, DeleteFHIRDatastoreError, Credentials | Region | HttpClient.HttpClient>;
export type DescribeFHIRDatastoreError = InternalServerException | ResourceNotFoundException | ThrottlingException | ValidationException | CommonErrors;
/**
 * Get properties for a FHIR-enabled data store.
 */
export declare const describeFHIRDatastore: API.OperationMethod<DescribeFHIRDatastoreRequest, DescribeFHIRDatastoreResponse, DescribeFHIRDatastoreError, Credentials | Region | HttpClient.HttpClient>;
export type DescribeFHIRExportJobError = InternalServerException | ResourceNotFoundException | ThrottlingException | ValidationException | CommonErrors;
/**
 * Get FHIR export job properties.
 */
export declare const describeFHIRExportJob: API.OperationMethod<DescribeFHIRExportJobRequest, DescribeFHIRExportJobResponse, DescribeFHIRExportJobError, Credentials | Region | HttpClient.HttpClient>;
export type DescribeFHIRImportJobError = InternalServerException | ResourceNotFoundException | ThrottlingException | ValidationException | CommonErrors;
/**
 * Get the import job properties to learn more about the job or job progress.
 */
export declare const describeFHIRImportJob: API.OperationMethod<DescribeFHIRImportJobRequest, DescribeFHIRImportJobResponse, DescribeFHIRImportJobError, Credentials | Region | HttpClient.HttpClient>;
export type ListFHIRDatastoresError = InternalServerException | ThrottlingException | ValidationException | CommonErrors;
/**
 * List all FHIR-enabled data stores in a user’s account, regardless of data store
 * status.
 */
export declare const listFHIRDatastores: API.OperationMethod<ListFHIRDatastoresRequest, ListFHIRDatastoresResponse, ListFHIRDatastoresError, Credentials | Region | HttpClient.HttpClient> & {
    pages: (input: ListFHIRDatastoresRequest) => stream.Stream<ListFHIRDatastoresResponse, ListFHIRDatastoresError, Credentials | Region | HttpClient.HttpClient>;
    items: (input: ListFHIRDatastoresRequest) => stream.Stream<unknown, ListFHIRDatastoresError, Credentials | Region | HttpClient.HttpClient>;
};
export type ListFHIRExportJobsError = AccessDeniedException | InternalServerException | ResourceNotFoundException | ThrottlingException | ValidationException | CommonErrors;
/**
 * Lists all FHIR export jobs associated with an account and their statuses.
 */
export declare const listFHIRExportJobs: API.OperationMethod<ListFHIRExportJobsRequest, ListFHIRExportJobsResponse, ListFHIRExportJobsError, Credentials | Region | HttpClient.HttpClient> & {
    pages: (input: ListFHIRExportJobsRequest) => stream.Stream<ListFHIRExportJobsResponse, ListFHIRExportJobsError, Credentials | Region | HttpClient.HttpClient>;
    items: (input: ListFHIRExportJobsRequest) => stream.Stream<unknown, ListFHIRExportJobsError, Credentials | Region | HttpClient.HttpClient>;
};
export type ListFHIRImportJobsError = AccessDeniedException | InternalServerException | ResourceNotFoundException | ThrottlingException | ValidationException | CommonErrors;
/**
 * List all FHIR import jobs associated with an account and their statuses.
 */
export declare const listFHIRImportJobs: API.OperationMethod<ListFHIRImportJobsRequest, ListFHIRImportJobsResponse, ListFHIRImportJobsError, Credentials | Region | HttpClient.HttpClient> & {
    pages: (input: ListFHIRImportJobsRequest) => stream.Stream<ListFHIRImportJobsResponse, ListFHIRImportJobsError, Credentials | Region | HttpClient.HttpClient>;
    items: (input: ListFHIRImportJobsRequest) => stream.Stream<unknown, ListFHIRImportJobsError, Credentials | Region | HttpClient.HttpClient>;
};
export type ListTagsForResourceError = ResourceNotFoundException | ValidationException | CommonErrors;
/**
 * Returns a list of all existing tags associated with a data store.
 */
export declare const listTagsForResource: API.OperationMethod<ListTagsForResourceRequest, ListTagsForResourceResponse, ListTagsForResourceError, Credentials | Region | HttpClient.HttpClient>;
export type StartFHIRExportJobError = AccessDeniedException | InternalServerException | ResourceNotFoundException | ThrottlingException | ValidationException | CommonErrors;
/**
 * Start a FHIR export job.
 */
export declare const startFHIRExportJob: API.OperationMethod<StartFHIRExportJobRequest, StartFHIRExportJobResponse, StartFHIRExportJobError, Credentials | Region | HttpClient.HttpClient>;
export type StartFHIRImportJobError = AccessDeniedException | InternalServerException | ResourceNotFoundException | ThrottlingException | ValidationException | CommonErrors;
/**
 * Start importing bulk FHIR data into an ACTIVE data store. The import job imports FHIR
 * data found in the `InputDataConfig` object and stores processing results in the
 * `JobOutputDataConfig` object.
 */
export declare const startFHIRImportJob: API.OperationMethod<StartFHIRImportJobRequest, StartFHIRImportJobResponse, StartFHIRImportJobError, Credentials | Region | HttpClient.HttpClient>;
export type TagResourceError = ResourceNotFoundException | ValidationException | CommonErrors;
/**
 * Add a user-specifed key and value tag to a data store.
 */
export declare const tagResource: API.OperationMethod<TagResourceRequest, TagResourceResponse, TagResourceError, Credentials | Region | HttpClient.HttpClient>;
export type UntagResourceError = ResourceNotFoundException | ValidationException | CommonErrors;
/**
 * Remove a user-specifed key and value tag from a data store.
 */
export declare const untagResource: API.OperationMethod<UntagResourceRequest, UntagResourceResponse, UntagResourceError, Credentials | Region | HttpClient.HttpClient>;
export {};
//# sourceMappingURL=healthlake.d.ts.map