import * as HttpClient from "effect/unstable/http/HttpClient";
import * as S from "effect/Schema";
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 S3Uri = string;
export type DataAutomationArn = string;
export type BlueprintArn = string;
export type BlueprintVersion = string;
export type DataAutomationProfileArn = string;
export type KMSKeyId = string;
export type EncryptionContextKey = string;
export type EncryptionContextValue = string;
export type NonBlankString = string;
export type TaggableResourceArn = string;
export type TagKey = string;
export type TagValue = string;
export type IdempotencyToken = string;
export type InvocationArn = string;
export interface SyncInputConfiguration {
    bytes?: Uint8Array;
    s3Uri?: string;
}
export declare const SyncInputConfiguration: S.Schema<SyncInputConfiguration>;
export type DataAutomationStage = "LIVE" | "DEVELOPMENT" | (string & {});
export declare const DataAutomationStage: S.String;
export interface DataAutomationConfiguration {
    dataAutomationProjectArn: string;
    stage?: DataAutomationStage;
}
export declare const DataAutomationConfiguration: S.Schema<DataAutomationConfiguration>;
export type BlueprintStage = "DEVELOPMENT" | "LIVE" | (string & {});
export declare const BlueprintStage: S.String;
export interface Blueprint {
    blueprintArn: string;
    version?: string;
    stage?: BlueprintStage;
}
export declare const Blueprint: S.Schema<Blueprint>;
export type BlueprintList = Blueprint[];
export declare const BlueprintList: S.$Array<S.Schema<Blueprint>>;
export type EncryptionContextMap = {
    [key: string]: string | undefined;
};
export declare const EncryptionContextMap: S.$Record<S.String, S.optional<S.String>>;
export interface EncryptionConfiguration {
    kmsKeyId: string;
    kmsEncryptionContext?: {
        [key: string]: string | undefined;
    };
}
export declare const EncryptionConfiguration: S.Schema<EncryptionConfiguration>;
export interface OutputConfiguration {
    s3Uri: string;
}
export declare const OutputConfiguration: S.Schema<OutputConfiguration>;
export interface InvokeDataAutomationRequest {
    inputConfiguration: SyncInputConfiguration;
    dataAutomationConfiguration?: DataAutomationConfiguration;
    blueprints?: Blueprint[];
    dataAutomationProfileArn: string;
    encryptionConfiguration?: EncryptionConfiguration;
    outputConfiguration?: OutputConfiguration;
}
export declare const InvokeDataAutomationRequest: S.Schema<InvokeDataAutomationRequest>;
export type SemanticModality = "DOCUMENT" | "IMAGE" | "AUDIO" | "VIDEO" | (string & {});
export declare const SemanticModality: S.String;
export type CustomOutputStatus = "MATCH" | "NO_MATCH" | (string & {});
export declare const CustomOutputStatus: S.String;
export interface OutputSegment {
    customOutputStatus?: CustomOutputStatus;
    customOutput?: string;
    standardOutput?: string;
}
export declare const OutputSegment: S.Schema<OutputSegment>;
export type OutputSegmentList = OutputSegment[];
export declare const OutputSegmentList: S.$Array<S.Schema<OutputSegment>>;
export interface InvokeDataAutomationResponse {
    outputConfiguration?: OutputConfiguration;
    semanticModality: SemanticModality;
    outputSegments?: OutputSegment[];
}
export declare const InvokeDataAutomationResponse: S.Schema<InvokeDataAutomationResponse>;
export interface ListTagsForResourceRequest {
    resourceARN: string;
}
export declare const ListTagsForResourceRequest: S.Schema<ListTagsForResourceRequest>;
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 interface ListTagsForResourceResponse {
    tags?: Tag[];
}
export declare const ListTagsForResourceResponse: S.Schema<ListTagsForResourceResponse>;
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>;
export interface TimestampSegment {
    startTimeMillis: number;
    endTimeMillis: number;
}
export declare const TimestampSegment: S.Schema<TimestampSegment>;
export type VideoSegmentConfiguration = {
    timestampSegment: TimestampSegment;
};
export declare const VideoSegmentConfiguration: S.Union<readonly [S.Struct<{
    readonly timestampSegment: S.Schema<TimestampSegment>;
}>]>;
export interface VideoAssetProcessingConfiguration {
    segmentConfiguration?: VideoSegmentConfiguration;
}
export declare const VideoAssetProcessingConfiguration: S.Schema<VideoAssetProcessingConfiguration>;
export interface AssetProcessingConfiguration {
    video?: VideoAssetProcessingConfiguration;
}
export declare const AssetProcessingConfiguration: S.Schema<AssetProcessingConfiguration>;
export interface InputConfiguration {
    s3Uri: string;
    assetProcessingConfiguration?: AssetProcessingConfiguration;
}
export declare const InputConfiguration: S.Schema<InputConfiguration>;
export interface EventBridgeConfiguration {
    eventBridgeEnabled: boolean;
}
export declare const EventBridgeConfiguration: S.Schema<EventBridgeConfiguration>;
export interface NotificationConfiguration {
    eventBridgeConfiguration: EventBridgeConfiguration;
}
export declare const NotificationConfiguration: S.Schema<NotificationConfiguration>;
export interface InvokeDataAutomationAsyncRequest {
    clientToken?: string;
    inputConfiguration: InputConfiguration;
    outputConfiguration: OutputConfiguration;
    dataAutomationConfiguration?: DataAutomationConfiguration;
    encryptionConfiguration?: EncryptionConfiguration;
    notificationConfiguration?: NotificationConfiguration;
    blueprints?: Blueprint[];
    dataAutomationProfileArn: string;
    tags?: Tag[];
}
export declare const InvokeDataAutomationAsyncRequest: S.Schema<InvokeDataAutomationAsyncRequest>;
export interface InvokeDataAutomationAsyncResponse {
    invocationArn: string;
}
export declare const InvokeDataAutomationAsyncResponse: S.Schema<InvokeDataAutomationAsyncResponse>;
export interface GetDataAutomationStatusRequest {
    invocationArn: string;
}
export declare const GetDataAutomationStatusRequest: S.Schema<GetDataAutomationStatusRequest>;
export type AutomationJobStatus = "Created" | "InProgress" | "Success" | "ServiceError" | "ClientError" | (string & {});
export declare const AutomationJobStatus: S.String;
export interface GetDataAutomationStatusResponse {
    status?: AutomationJobStatus;
    errorType?: string;
    errorMessage?: string;
    outputConfiguration?: OutputConfiguration;
    jobSubmissionTime?: Date;
    jobCompletionTime?: Date;
    jobDurationInSeconds?: number;
}
export declare const GetDataAutomationStatusResponse: S.Schema<GetDataAutomationStatusResponse>;
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 ServiceUnavailableException_base: S.Class<ServiceUnavailableException, S.TaggedStruct<"ServiceUnavailableException", {
    readonly message: S.optional<S.String>;
}>, import("effect/Cause").YieldableError> & (new (...args: any[]) => {
    "@distilled.cloud/error/categories": {
        ServerError: true;
    };
});
export declare class ServiceUnavailableException extends ServiceUnavailableException_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 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 {
}
declare const ServiceQuotaExceededException_base: S.Class<ServiceQuotaExceededException, S.TaggedStruct<"ServiceQuotaExceededException", {
    readonly message: S.optional<S.String>;
}>, import("effect/Cause").YieldableError> & (new (...args: any[]) => {
    "@distilled.cloud/error/categories": {
        QuotaError: true;
    };
});
export declare class ServiceQuotaExceededException extends ServiceQuotaExceededException_base {
}
export type InvokeDataAutomationError = AccessDeniedException | InternalServerException | ServiceUnavailableException | ThrottlingException | ValidationException | CommonErrors;
/**
 * Sync API: Invoke data automation.
 */
export declare const invokeDataAutomation: API.OperationMethod<InvokeDataAutomationRequest, InvokeDataAutomationResponse, InvokeDataAutomationError, Credentials | Region | HttpClient.HttpClient>;
export type ListTagsForResourceError = AccessDeniedException | InternalServerException | ResourceNotFoundException | ThrottlingException | ValidationException | CommonErrors;
/**
 * List tags for an Amazon Bedrock Data Automation resource
 */
export declare const listTagsForResource: API.OperationMethod<ListTagsForResourceRequest, ListTagsForResourceResponse, ListTagsForResourceError, Credentials | Region | HttpClient.HttpClient>;
export type TagResourceError = AccessDeniedException | InternalServerException | ResourceNotFoundException | ServiceQuotaExceededException | ThrottlingException | ValidationException | CommonErrors;
/**
 * Tag an Amazon Bedrock Data Automation resource
 */
export declare const tagResource: API.OperationMethod<TagResourceRequest, TagResourceResponse, TagResourceError, Credentials | Region | HttpClient.HttpClient>;
export type UntagResourceError = AccessDeniedException | InternalServerException | ResourceNotFoundException | ThrottlingException | ValidationException | CommonErrors;
/**
 * Untag an Amazon Bedrock Data Automation resource
 */
export declare const untagResource: API.OperationMethod<UntagResourceRequest, UntagResourceResponse, UntagResourceError, Credentials | Region | HttpClient.HttpClient>;
export type InvokeDataAutomationAsyncError = AccessDeniedException | InternalServerException | ServiceQuotaExceededException | ThrottlingException | ValidationException | CommonErrors;
/**
 * Async API: Invoke data automation.
 */
export declare const invokeDataAutomationAsync: API.OperationMethod<InvokeDataAutomationAsyncRequest, InvokeDataAutomationAsyncResponse, InvokeDataAutomationAsyncError, Credentials | Region | HttpClient.HttpClient>;
export type GetDataAutomationStatusError = AccessDeniedException | InternalServerException | ResourceNotFoundException | ThrottlingException | ValidationException | CommonErrors;
/**
 * API used to get data automation status.
 */
export declare const getDataAutomationStatus: API.OperationMethod<GetDataAutomationStatusRequest, GetDataAutomationStatusResponse, GetDataAutomationStatusError, Credentials | Region | HttpClient.HttpClient>;
export {};
//# sourceMappingURL=bedrock-data-automation-runtime.d.ts.map