import { ExceptionOptionType as __ExceptionOptionType } from "@smithy/smithy-client";
import { BedrockRuntimeServiceException as __BaseException } from "./BedrockRuntimeServiceException";
/**
 * @public
 * <p>The request is denied because of missing access permissions.</p>
 */
export declare class AccessDeniedException extends __BaseException {
    readonly name: "AccessDeniedException";
    readonly $fault: "client";
    /**
     * @internal
     */
    constructor(opts: __ExceptionOptionType<AccessDeniedException, __BaseException>);
}
/**
 * @public
 * <p>An internal server error occurred. Retry your request.</p>
 */
export declare class InternalServerException extends __BaseException {
    readonly name: "InternalServerException";
    readonly $fault: "server";
    /**
     * @internal
     */
    constructor(opts: __ExceptionOptionType<InternalServerException, __BaseException>);
}
/**
 * @public
 */
export interface InvokeModelRequest {
    /**
     * @public
     * <p>Input data in the format specified in the content-type request header. To see the format and content of this field for different models, refer to <a href="https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters.html">Inference parameters</a>.</p>
     */
    body: Uint8Array | undefined;
    /**
     * @public
     * <p>The MIME type of the input data in the request. The default value is
     *             <code>application/json</code>.</p>
     */
    contentType?: string;
    /**
     * @public
     * <p>The desired MIME type of the inference body in the response. The default value is
     *             <code>application/json</code>.</p>
     */
    accept?: string;
    /**
     * @public
     * <p>Identifier of the model. </p>
     */
    modelId: string | undefined;
}
/**
 * @public
 */
export interface InvokeModelResponse {
    /**
     * @public
     * <p>Inference response from the model in the format specified in the content-type header field. To see the format and content of this field for different models, refer to <a href="https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters.html">Inference parameters</a>.</p>
     */
    body: Uint8Array | undefined;
    /**
     * @public
     * <p>The MIME type of the inference result.</p>
     */
    contentType: string | undefined;
}
/**
 * @public
 * <p>The request failed due to an error while processing the model.</p>
 */
export declare class ModelErrorException extends __BaseException {
    readonly name: "ModelErrorException";
    readonly $fault: "client";
    /**
     * @public
     * <p>The original status code.</p>
     */
    originalStatusCode?: number;
    /**
     * @public
     * <p>The resource name.</p>
     */
    resourceName?: string;
    /**
     * @internal
     */
    constructor(opts: __ExceptionOptionType<ModelErrorException, __BaseException>);
}
/**
 * @public
 * <p>The model specified in the request is not ready to serve inference requests.</p>
 */
export declare class ModelNotReadyException extends __BaseException {
    readonly name: "ModelNotReadyException";
    readonly $fault: "client";
    /**
     * @internal
     */
    constructor(opts: __ExceptionOptionType<ModelNotReadyException, __BaseException>);
}
/**
 * @public
 * <p>The request took too long to process. Processing time exceeded the model timeout length.</p>
 */
export declare class ModelTimeoutException extends __BaseException {
    readonly name: "ModelTimeoutException";
    readonly $fault: "client";
    /**
     * @internal
     */
    constructor(opts: __ExceptionOptionType<ModelTimeoutException, __BaseException>);
}
/**
 * @public
 * <p>The specified resource ARN was not found. Check the ARN and try your request again.</p>
 */
export declare class ResourceNotFoundException extends __BaseException {
    readonly name: "ResourceNotFoundException";
    readonly $fault: "client";
    /**
     * @internal
     */
    constructor(opts: __ExceptionOptionType<ResourceNotFoundException, __BaseException>);
}
/**
 * @public
 * <p>The number of requests exceeds the service quota. Resubmit your request later.</p>
 */
export declare class ServiceQuotaExceededException extends __BaseException {
    readonly name: "ServiceQuotaExceededException";
    readonly $fault: "client";
    /**
     * @internal
     */
    constructor(opts: __ExceptionOptionType<ServiceQuotaExceededException, __BaseException>);
}
/**
 * @public
 * <p>The number of requests exceeds the limit. Resubmit your request later.</p>
 */
export declare class ThrottlingException extends __BaseException {
    readonly name: "ThrottlingException";
    readonly $fault: "client";
    /**
     * @internal
     */
    constructor(opts: __ExceptionOptionType<ThrottlingException, __BaseException>);
}
/**
 * @public
 * <p>Input validation failed. Check your request parameters and retry the request.</p>
 */
export declare class ValidationException extends __BaseException {
    readonly name: "ValidationException";
    readonly $fault: "client";
    /**
     * @internal
     */
    constructor(opts: __ExceptionOptionType<ValidationException, __BaseException>);
}
/**
 * @public
 */
export interface InvokeModelWithResponseStreamRequest {
    /**
     * @public
     * <p>Inference input in the format specified by the
     *          content-type. To see the format and content of this field for different models, refer to <a href="https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters.html">Inference parameters</a>.</p>
     */
    body: Uint8Array | undefined;
    /**
     * @public
     * <p>The MIME type of the input data in the request. The default value is
     *             <code>application/json</code>.</p>
     */
    contentType?: string;
    /**
     * @public
     * <p>The desired MIME type of the inference body in the response. The default value is
     *             <code>application/json</code>.</p>
     */
    accept?: string;
    /**
     * @public
     * <p>Id of the model to invoke using the streaming request.</p>
     */
    modelId: string | undefined;
}
/**
 * @public
 * <p>Payload content included in the response.</p>
 */
export interface PayloadPart {
    /**
     * @public
     * <p>Base64-encoded bytes of payload data.</p>
     */
    bytes?: Uint8Array;
}
/**
 * @public
 * <p>An error occurred while streaming the response.</p>
 */
export declare class ModelStreamErrorException extends __BaseException {
    readonly name: "ModelStreamErrorException";
    readonly $fault: "client";
    /**
     * @public
     * <p>The original status code.</p>
     */
    originalStatusCode?: number;
    /**
     * @public
     * <p>The original message.</p>
     */
    originalMessage?: string;
    /**
     * @internal
     */
    constructor(opts: __ExceptionOptionType<ModelStreamErrorException, __BaseException>);
}
/**
 * @public
 * <p>Definition of content in the response stream.</p>
 */
export type ResponseStream = ResponseStream.ChunkMember | ResponseStream.InternalServerExceptionMember | ResponseStream.ModelStreamErrorExceptionMember | ResponseStream.ThrottlingExceptionMember | ResponseStream.ValidationExceptionMember | ResponseStream.$UnknownMember;
/**
 * @public
 */
export declare namespace ResponseStream {
    /**
     * @public
     * <p>Content included in the response.</p>
     */
    interface ChunkMember {
        chunk: PayloadPart;
        internalServerException?: never;
        modelStreamErrorException?: never;
        validationException?: never;
        throttlingException?: never;
        $unknown?: never;
    }
    /**
     * @public
     * <p>An internal server error occurred. Retry your request.</p>
     */
    interface InternalServerExceptionMember {
        chunk?: never;
        internalServerException: InternalServerException;
        modelStreamErrorException?: never;
        validationException?: never;
        throttlingException?: never;
        $unknown?: never;
    }
    /**
     * @public
     * <p>An error occurred while streaming the response.</p>
     */
    interface ModelStreamErrorExceptionMember {
        chunk?: never;
        internalServerException?: never;
        modelStreamErrorException: ModelStreamErrorException;
        validationException?: never;
        throttlingException?: never;
        $unknown?: never;
    }
    /**
     * @public
     * <p>Input validation failed. Check your request parameters and retry the request.</p>
     */
    interface ValidationExceptionMember {
        chunk?: never;
        internalServerException?: never;
        modelStreamErrorException?: never;
        validationException: ValidationException;
        throttlingException?: never;
        $unknown?: never;
    }
    /**
     * @public
     * <p>The number of requests exceeds the limit. Resubmit your request later.</p>
     */
    interface ThrottlingExceptionMember {
        chunk?: never;
        internalServerException?: never;
        modelStreamErrorException?: never;
        validationException?: never;
        throttlingException: ThrottlingException;
        $unknown?: never;
    }
    /**
     * @public
     */
    interface $UnknownMember {
        chunk?: never;
        internalServerException?: never;
        modelStreamErrorException?: never;
        validationException?: never;
        throttlingException?: never;
        $unknown: [string, any];
    }
    interface Visitor<T> {
        chunk: (value: PayloadPart) => T;
        internalServerException: (value: InternalServerException) => T;
        modelStreamErrorException: (value: ModelStreamErrorException) => T;
        validationException: (value: ValidationException) => T;
        throttlingException: (value: ThrottlingException) => T;
        _: (name: string, value: any) => T;
    }
    const visit: <T>(value: ResponseStream, visitor: Visitor<T>) => T;
}
/**
 * @public
 */
export interface InvokeModelWithResponseStreamResponse {
    /**
     * @public
     * <p>Inference response from the model in the format specified by Content-Type. To see the format and content of this field for different models, refer to <a href="https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters.html">Inference parameters</a>.</p>
     */
    body: AsyncIterable<ResponseStream> | undefined;
    /**
     * @public
     * <p>The MIME type of the inference result.</p>
     */
    contentType: string | undefined;
}
/**
 * @internal
 */
export declare const InvokeModelRequestFilterSensitiveLog: (obj: InvokeModelRequest) => any;
/**
 * @internal
 */
export declare const InvokeModelResponseFilterSensitiveLog: (obj: InvokeModelResponse) => any;
/**
 * @internal
 */
export declare const InvokeModelWithResponseStreamRequestFilterSensitiveLog: (obj: InvokeModelWithResponseStreamRequest) => any;
/**
 * @internal
 */
export declare const PayloadPartFilterSensitiveLog: (obj: PayloadPart) => any;
/**
 * @internal
 */
export declare const ResponseStreamFilterSensitiveLog: (obj: ResponseStream) => any;
/**
 * @internal
 */
export declare const InvokeModelWithResponseStreamResponseFilterSensitiveLog: (obj: InvokeModelWithResponseStreamResponse) => any;
