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 ResourceARN = string;
export type TagKey = string;
export type TagValue = string;
export type ExceptionMessage = string;
export type VectorBucketName = string;
export type KmsKeyArn = string;
export type VectorBucketArn = string;
export type VectorBucketPolicy = string;
export type ListVectorBucketsMaxResults = number;
export type ListVectorBucketsNextToken = string;
export type ListVectorBucketsPrefix = string;
export type IndexName = string;
export type Dimension = number;
export type MetadataKey = string;
export type IndexArn = string;
export type ListIndexesMaxResults = number;
export type ListIndexesNextToken = string;
export type ListIndexesPrefix = string;
export type VectorKey = string;
export type VectorMetadata = unknown;
export type ListVectorsMaxResults = number;
export type ListVectorsNextToken = string;
export type ListVectorsSegmentCount = number;
export type ListVectorsSegmentIndex = number;
export type TopK = number;
export interface ListTagsForResourceInput {
    resourceArn: string;
}
export declare const ListTagsForResourceInput: S.Schema<ListTagsForResourceInput>;
export type TagsMap = {
    [key: string]: string | undefined;
};
export declare const TagsMap: S.$Record<S.String, S.optional<S.String>>;
export interface ListTagsForResourceOutput {
    tags: {
        [key: string]: string | undefined;
    };
}
export declare const ListTagsForResourceOutput: S.Schema<ListTagsForResourceOutput>;
export interface TagResourceInput {
    resourceArn: string;
    tags: {
        [key: string]: string | undefined;
    };
}
export declare const TagResourceInput: S.Schema<TagResourceInput>;
export interface TagResourceOutput {
}
export declare const TagResourceOutput: S.Schema<TagResourceOutput>;
export type TagKeyList = string[];
export declare const TagKeyList: S.$Array<S.String>;
export interface UntagResourceInput {
    resourceArn: string;
    tagKeys: string[];
}
export declare const UntagResourceInput: S.Schema<UntagResourceInput>;
export interface UntagResourceOutput {
}
export declare const UntagResourceOutput: S.Schema<UntagResourceOutput>;
export type SseType = "AES256" | "aws:kms" | (string & {});
export declare const SseType: S.String;
export interface EncryptionConfiguration {
    sseType?: SseType;
    kmsKeyArn?: string;
}
export declare const EncryptionConfiguration: S.Schema<EncryptionConfiguration>;
export interface CreateVectorBucketInput {
    vectorBucketName: string;
    encryptionConfiguration?: EncryptionConfiguration;
    tags?: {
        [key: string]: string | undefined;
    };
}
export declare const CreateVectorBucketInput: S.Schema<CreateVectorBucketInput>;
export interface CreateVectorBucketOutput {
    vectorBucketArn: string;
}
export declare const CreateVectorBucketOutput: S.Schema<CreateVectorBucketOutput>;
export interface DeleteVectorBucketInput {
    vectorBucketName?: string;
    vectorBucketArn?: string;
}
export declare const DeleteVectorBucketInput: S.Schema<DeleteVectorBucketInput>;
export interface DeleteVectorBucketOutput {
}
export declare const DeleteVectorBucketOutput: S.Schema<DeleteVectorBucketOutput>;
export interface DeleteVectorBucketPolicyInput {
    vectorBucketName?: string;
    vectorBucketArn?: string;
}
export declare const DeleteVectorBucketPolicyInput: S.Schema<DeleteVectorBucketPolicyInput>;
export interface DeleteVectorBucketPolicyOutput {
}
export declare const DeleteVectorBucketPolicyOutput: S.Schema<DeleteVectorBucketPolicyOutput>;
export interface GetVectorBucketInput {
    vectorBucketName?: string;
    vectorBucketArn?: string;
}
export declare const GetVectorBucketInput: S.Schema<GetVectorBucketInput>;
export interface VectorBucket {
    vectorBucketName: string;
    vectorBucketArn: string;
    creationTime: Date;
    encryptionConfiguration?: EncryptionConfiguration;
}
export declare const VectorBucket: S.Schema<VectorBucket>;
export interface GetVectorBucketOutput {
    vectorBucket: VectorBucket;
}
export declare const GetVectorBucketOutput: S.Schema<GetVectorBucketOutput>;
export interface GetVectorBucketPolicyInput {
    vectorBucketName?: string;
    vectorBucketArn?: string;
}
export declare const GetVectorBucketPolicyInput: S.Schema<GetVectorBucketPolicyInput>;
export interface GetVectorBucketPolicyOutput {
    policy?: string;
}
export declare const GetVectorBucketPolicyOutput: S.Schema<GetVectorBucketPolicyOutput>;
export interface ListVectorBucketsInput {
    maxResults?: number;
    nextToken?: string;
    prefix?: string;
}
export declare const ListVectorBucketsInput: S.Schema<ListVectorBucketsInput>;
export interface VectorBucketSummary {
    vectorBucketName: string;
    vectorBucketArn: string;
    creationTime: Date;
}
export declare const VectorBucketSummary: S.Schema<VectorBucketSummary>;
export type ListVectorBucketsOutputList = VectorBucketSummary[];
export declare const ListVectorBucketsOutputList: S.$Array<S.Schema<VectorBucketSummary>>;
export interface ListVectorBucketsOutput {
    nextToken?: string;
    vectorBuckets: VectorBucketSummary[];
}
export declare const ListVectorBucketsOutput: S.Schema<ListVectorBucketsOutput>;
export interface PutVectorBucketPolicyInput {
    vectorBucketName?: string;
    vectorBucketArn?: string;
    policy: string;
}
export declare const PutVectorBucketPolicyInput: S.Schema<PutVectorBucketPolicyInput>;
export interface PutVectorBucketPolicyOutput {
}
export declare const PutVectorBucketPolicyOutput: S.Schema<PutVectorBucketPolicyOutput>;
export type DataType = "float32" | (string & {});
export declare const DataType: S.String;
export type DistanceMetric = "euclidean" | "cosine" | (string & {});
export declare const DistanceMetric: S.String;
export type NonFilterableMetadataKeys = string[];
export declare const NonFilterableMetadataKeys: S.$Array<S.String>;
export interface MetadataConfiguration {
    nonFilterableMetadataKeys: string[];
}
export declare const MetadataConfiguration: S.Schema<MetadataConfiguration>;
export interface CreateIndexInput {
    vectorBucketName?: string;
    vectorBucketArn?: string;
    indexName: string;
    dataType: DataType;
    dimension: number;
    distanceMetric: DistanceMetric;
    metadataConfiguration?: MetadataConfiguration;
    encryptionConfiguration?: EncryptionConfiguration;
    tags?: {
        [key: string]: string | undefined;
    };
}
export declare const CreateIndexInput: S.Schema<CreateIndexInput>;
export interface CreateIndexOutput {
    indexArn: string;
}
export declare const CreateIndexOutput: S.Schema<CreateIndexOutput>;
export interface DeleteIndexInput {
    vectorBucketName?: string;
    indexName?: string;
    indexArn?: string;
}
export declare const DeleteIndexInput: S.Schema<DeleteIndexInput>;
export interface DeleteIndexOutput {
}
export declare const DeleteIndexOutput: S.Schema<DeleteIndexOutput>;
export interface GetIndexInput {
    vectorBucketName?: string;
    indexName?: string;
    indexArn?: string;
}
export declare const GetIndexInput: S.Schema<GetIndexInput>;
export interface Index {
    vectorBucketName: string;
    indexName: string;
    indexArn: string;
    creationTime: Date;
    dataType: DataType;
    dimension: number;
    distanceMetric: DistanceMetric;
    metadataConfiguration?: MetadataConfiguration;
    encryptionConfiguration?: EncryptionConfiguration;
}
export declare const Index: S.Schema<Index>;
export interface GetIndexOutput {
    index: Index;
}
export declare const GetIndexOutput: S.Schema<GetIndexOutput>;
export interface ListIndexesInput {
    vectorBucketName?: string;
    vectorBucketArn?: string;
    maxResults?: number;
    nextToken?: string;
    prefix?: string;
}
export declare const ListIndexesInput: S.Schema<ListIndexesInput>;
export interface IndexSummary {
    vectorBucketName: string;
    indexName: string;
    indexArn: string;
    creationTime: Date;
}
export declare const IndexSummary: S.Schema<IndexSummary>;
export type ListIndexesOutputList = IndexSummary[];
export declare const ListIndexesOutputList: S.$Array<S.Schema<IndexSummary>>;
export interface ListIndexesOutput {
    nextToken?: string;
    indexes: IndexSummary[];
}
export declare const ListIndexesOutput: S.Schema<ListIndexesOutput>;
export type DeleteVectorsInputList = string[];
export declare const DeleteVectorsInputList: S.$Array<S.String>;
export interface DeleteVectorsInput {
    vectorBucketName?: string;
    indexName?: string;
    indexArn?: string;
    keys: string[];
}
export declare const DeleteVectorsInput: S.Schema<DeleteVectorsInput>;
export interface DeleteVectorsOutput {
}
export declare const DeleteVectorsOutput: S.Schema<DeleteVectorsOutput>;
export type GetVectorsInputList = string[];
export declare const GetVectorsInputList: S.$Array<S.String>;
export interface GetVectorsInput {
    vectorBucketName?: string;
    indexName?: string;
    indexArn?: string;
    keys: string[];
    returnData?: boolean;
    returnMetadata?: boolean;
}
export declare const GetVectorsInput: S.Schema<GetVectorsInput>;
export type Float32VectorData = number[];
export declare const Float32VectorData: S.$Array<S.Number>;
export type VectorData = {
    float32: number[];
};
export declare const VectorData: S.Union<readonly [S.Struct<{
    readonly float32: S.$Array<S.Number>;
}>]>;
export interface GetOutputVector {
    key: string;
    data?: VectorData;
    metadata?: any;
}
export declare const GetOutputVector: S.Schema<GetOutputVector>;
export type GetVectorsOutputList = GetOutputVector[];
export declare const GetVectorsOutputList: S.$Array<S.Schema<GetOutputVector>>;
export interface GetVectorsOutput {
    vectors: GetOutputVector[];
}
export declare const GetVectorsOutput: S.Schema<GetVectorsOutput>;
export interface ListVectorsInput {
    vectorBucketName?: string;
    indexName?: string;
    indexArn?: string;
    maxResults?: number;
    nextToken?: string;
    segmentCount?: number;
    segmentIndex?: number;
    returnData?: boolean;
    returnMetadata?: boolean;
}
export declare const ListVectorsInput: S.Schema<ListVectorsInput>;
export interface ListOutputVector {
    key: string;
    data?: VectorData;
    metadata?: any;
}
export declare const ListOutputVector: S.Schema<ListOutputVector>;
export type ListVectorsOutputList = ListOutputVector[];
export declare const ListVectorsOutputList: S.$Array<S.Schema<ListOutputVector>>;
export interface ListVectorsOutput {
    nextToken?: string;
    vectors: ListOutputVector[];
}
export declare const ListVectorsOutput: S.Schema<ListVectorsOutput>;
export interface PutInputVector {
    key: string;
    data: VectorData;
    metadata?: any;
}
export declare const PutInputVector: S.Schema<PutInputVector>;
export type PutVectorsInputList = PutInputVector[];
export declare const PutVectorsInputList: S.$Array<S.Schema<PutInputVector>>;
export interface PutVectorsInput {
    vectorBucketName?: string;
    indexName?: string;
    indexArn?: string;
    vectors: PutInputVector[];
}
export declare const PutVectorsInput: S.Schema<PutVectorsInput>;
export interface PutVectorsOutput {
}
export declare const PutVectorsOutput: S.Schema<PutVectorsOutput>;
export interface QueryVectorsInput {
    vectorBucketName?: string;
    indexName?: string;
    indexArn?: string;
    topK: number;
    queryVector: VectorData;
    filter?: any;
    returnMetadata?: boolean;
    returnDistance?: boolean;
}
export declare const QueryVectorsInput: S.Schema<QueryVectorsInput>;
export interface QueryOutputVector {
    distance?: number;
    key: string;
    metadata?: any;
}
export declare const QueryOutputVector: S.Schema<QueryOutputVector>;
export type QueryVectorsOutputList = QueryOutputVector[];
export declare const QueryVectorsOutputList: S.$Array<S.Schema<QueryOutputVector>>;
export interface QueryVectorsOutput {
    vectors: QueryOutputVector[];
    distanceMetric: DistanceMetric;
}
export declare const QueryVectorsOutput: S.Schema<QueryVectorsOutput>;
declare const NotFoundException_base: S.Class<NotFoundException, S.TaggedStruct<"NotFoundException", {
    readonly message: S.String;
}>, import("effect/Cause").YieldableError> & (new (...args: any[]) => {
    "@distilled.cloud/error/categories": {
        BadRequestError: true;
    };
});
export declare class NotFoundException extends NotFoundException_base {
}
declare const ServiceUnavailableException_base: S.Class<ServiceUnavailableException, S.TaggedStruct<"ServiceUnavailableException", {
    readonly message: S.String;
}>, import("effect/Cause").YieldableError> & (new (...args: any[]) => {
    "@distilled.cloud/error/categories": {
        ServerError: true;
    };
}) & (new (...args: any[]) => {
    "@distilled.cloud/error/categories": {
        RetryableError: true;
    };
});
export declare class ServiceUnavailableException extends ServiceUnavailableException_base {
}
declare const ConflictException_base: S.Class<ConflictException, S.TaggedStruct<"ConflictException", {
    readonly message: S.String;
}>, import("effect/Cause").YieldableError> & (new (...args: any[]) => {
    "@distilled.cloud/error/categories": {
        ConflictError: true;
    };
});
export declare class ConflictException extends ConflictException_base {
}
declare const ServiceQuotaExceededException_base: S.Class<ServiceQuotaExceededException, S.TaggedStruct<"ServiceQuotaExceededException", {
    readonly message: S.String;
}>, import("effect/Cause").YieldableError> & (new (...args: any[]) => {
    "@distilled.cloud/error/categories": {
        QuotaError: true;
    };
});
export declare class ServiceQuotaExceededException extends ServiceQuotaExceededException_base {
}
declare const AccessDeniedException_base: S.Class<AccessDeniedException, S.TaggedStruct<"AccessDeniedException", {
    readonly message: S.String;
}>, import("effect/Cause").YieldableError> & (new (...args: any[]) => {
    "@distilled.cloud/error/categories": {
        AuthError: true;
    };
});
export declare class AccessDeniedException extends AccessDeniedException_base {
}
declare const KmsDisabledException_base: S.Class<KmsDisabledException, S.TaggedStruct<"KmsDisabledException", {
    readonly message: S.String;
}>, import("effect/Cause").YieldableError> & (new (...args: any[]) => {
    "@distilled.cloud/error/categories": {
        BadRequestError: true;
    };
});
export declare class KmsDisabledException extends KmsDisabledException_base {
}
declare const KmsInvalidKeyUsageException_base: S.Class<KmsInvalidKeyUsageException, S.TaggedStruct<"KmsInvalidKeyUsageException", {
    readonly message: S.String;
}>, import("effect/Cause").YieldableError> & (new (...args: any[]) => {
    "@distilled.cloud/error/categories": {
        BadRequestError: true;
    };
});
export declare class KmsInvalidKeyUsageException extends KmsInvalidKeyUsageException_base {
}
declare const KmsInvalidStateException_base: S.Class<KmsInvalidStateException, S.TaggedStruct<"KmsInvalidStateException", {
    readonly message: S.String;
}>, import("effect/Cause").YieldableError> & (new (...args: any[]) => {
    "@distilled.cloud/error/categories": {
        BadRequestError: true;
    };
});
export declare class KmsInvalidStateException extends KmsInvalidStateException_base {
}
declare const KmsNotFoundException_base: S.Class<KmsNotFoundException, S.TaggedStruct<"KmsNotFoundException", {
    readonly message: S.String;
}>, import("effect/Cause").YieldableError> & (new (...args: any[]) => {
    "@distilled.cloud/error/categories": {
        BadRequestError: true;
    };
});
export declare class KmsNotFoundException extends KmsNotFoundException_base {
}
export type ListTagsForResourceError = NotFoundException | ServiceUnavailableException | CommonErrors;
/**
 * Lists all of the tags applied to a specified Amazon S3 Vectors resource. Each tag is a label consisting of a key and value pair. Tags can help you organize, track costs for, and control access to resources.
 *
 * For a list of S3 resources that support tagging, see Managing tags for Amazon S3 resources.
 *
 * ### Permissions
 *
 * For vector buckets and vector indexes, you must have the `s3vectors:ListTagsForResource` permission to use this operation.
 */
export declare const listTagsForResource: API.OperationMethod<ListTagsForResourceInput, ListTagsForResourceOutput, ListTagsForResourceError, Credentials | Region | HttpClient.HttpClient>;
export type TagResourceError = ConflictException | NotFoundException | ServiceUnavailableException | CommonErrors;
/**
 * Applies one or more user-defined tags to an Amazon S3 Vectors resource or updates existing tags. Each tag is a label consisting of a key and value pair. Tags can help you organize, track costs for, and control access to your resources. You can add up to 50 tags for each resource.
 *
 * For a list of S3 resources that support tagging, see Managing tags for Amazon S3 resources.
 *
 * ### Permissions
 *
 * For vector buckets and vector indexes, you must have the `s3vectors:TagResource` permission to use this operation.
 */
export declare const tagResource: API.OperationMethod<TagResourceInput, TagResourceOutput, TagResourceError, Credentials | Region | HttpClient.HttpClient>;
export type UntagResourceError = ConflictException | NotFoundException | ServiceUnavailableException | CommonErrors;
/**
 * Removes the specified user-defined tags from an Amazon S3 Vectors resource. You can pass one or more tag keys.
 *
 * For a list of S3 resources that support tagging, see Managing tags for Amazon S3 resources.
 *
 * ### Permissions
 *
 * For vector buckets and vector indexes, you must have the `s3vectors:UntagResource` permission to use this operation.
 */
export declare const untagResource: API.OperationMethod<UntagResourceInput, UntagResourceOutput, UntagResourceError, Credentials | Region | HttpClient.HttpClient>;
export type CreateVectorBucketError = ConflictException | ServiceQuotaExceededException | ServiceUnavailableException | CommonErrors;
/**
 * Creates a vector bucket in the Amazon Web Services Region that you want your bucket to be in.
 *
 * ### Permissions
 *
 * You must have the `s3vectors:CreateVectorBucket` permission to use this operation.
 *
 * You must have the `s3vectors:TagResource` permission in addition to `s3vectors:CreateVectorBucket` permission to create a vector bucket with tags.
 */
export declare const createVectorBucket: API.OperationMethod<CreateVectorBucketInput, CreateVectorBucketOutput, CreateVectorBucketError, Credentials | Region | HttpClient.HttpClient>;
export type DeleteVectorBucketError = ConflictException | NotFoundException | ServiceUnavailableException | CommonErrors;
/**
 * Deletes a vector bucket. All vector indexes in the vector bucket must be deleted before the vector bucket can be deleted. To perform this operation, you must use either the vector bucket name or the vector bucket Amazon Resource Name (ARN).
 *
 * ### Permissions
 *
 * You must have the `s3vectors:DeleteVectorBucket` permission to use this operation.
 */
export declare const deleteVectorBucket: API.OperationMethod<DeleteVectorBucketInput, DeleteVectorBucketOutput, DeleteVectorBucketError, Credentials | Region | HttpClient.HttpClient>;
export type DeleteVectorBucketPolicyError = NotFoundException | ServiceUnavailableException | CommonErrors;
/**
 * Deletes a vector bucket policy. To specify the bucket, you must use either the vector bucket name or the vector bucket Amazon Resource Name (ARN).
 *
 * ### Permissions
 *
 * You must have the `s3vectors:DeleteVectorBucketPolicy` permission to use this operation.
 */
export declare const deleteVectorBucketPolicy: API.OperationMethod<DeleteVectorBucketPolicyInput, DeleteVectorBucketPolicyOutput, DeleteVectorBucketPolicyError, Credentials | Region | HttpClient.HttpClient>;
export type GetVectorBucketError = NotFoundException | ServiceUnavailableException | CommonErrors;
/**
 * Returns vector bucket attributes. To specify the bucket, you must use either the vector bucket name or the vector bucket Amazon Resource Name (ARN).
 *
 * ### Permissions
 *
 * You must have the `s3vectors:GetVectorBucket` permission to use this operation.
 */
export declare const getVectorBucket: API.OperationMethod<GetVectorBucketInput, GetVectorBucketOutput, GetVectorBucketError, Credentials | Region | HttpClient.HttpClient>;
export type GetVectorBucketPolicyError = NotFoundException | ServiceUnavailableException | CommonErrors;
/**
 * Gets details about a vector bucket policy. To specify the bucket, you must use either the vector bucket name or the vector bucket Amazon Resource Name (ARN).
 *
 * ### Permissions
 *
 * You must have the `s3vectors:GetVectorBucketPolicy` permission to use this operation.
 */
export declare const getVectorBucketPolicy: API.OperationMethod<GetVectorBucketPolicyInput, GetVectorBucketPolicyOutput, GetVectorBucketPolicyError, Credentials | Region | HttpClient.HttpClient>;
export type ListVectorBucketsError = ServiceUnavailableException | CommonErrors;
/**
 * Returns a list of all the vector buckets that are owned by the authenticated sender of the request.
 *
 * ### Permissions
 *
 * You must have the `s3vectors:ListVectorBuckets` permission to use this operation.
 */
export declare const listVectorBuckets: API.OperationMethod<ListVectorBucketsInput, ListVectorBucketsOutput, ListVectorBucketsError, Credentials | Region | HttpClient.HttpClient> & {
    pages: (input: ListVectorBucketsInput) => stream.Stream<ListVectorBucketsOutput, ListVectorBucketsError, Credentials | Region | HttpClient.HttpClient>;
    items: (input: ListVectorBucketsInput) => stream.Stream<VectorBucketSummary, ListVectorBucketsError, Credentials | Region | HttpClient.HttpClient>;
};
export type PutVectorBucketPolicyError = NotFoundException | ServiceUnavailableException | CommonErrors;
/**
 * Creates a bucket policy for a vector bucket. To specify the bucket, you must use either the vector bucket name or the vector bucket Amazon Resource Name (ARN).
 *
 * ### Permissions
 *
 * You must have the `s3vectors:PutVectorBucketPolicy` permission to use this operation.
 */
export declare const putVectorBucketPolicy: API.OperationMethod<PutVectorBucketPolicyInput, PutVectorBucketPolicyOutput, PutVectorBucketPolicyError, Credentials | Region | HttpClient.HttpClient>;
export type CreateIndexError = ConflictException | NotFoundException | ServiceQuotaExceededException | ServiceUnavailableException | CommonErrors;
/**
 * Creates a vector index within a vector bucket. To specify the vector bucket, you must use either the vector bucket name or the vector bucket Amazon Resource Name (ARN).
 *
 * ### Permissions
 *
 * You must have the `s3vectors:CreateIndex` permission to use this operation.
 *
 * You must have the `s3vectors:TagResource` permission in addition to `s3vectors:CreateIndex` permission to create a vector index with tags.
 */
export declare const createIndex: API.OperationMethod<CreateIndexInput, CreateIndexOutput, CreateIndexError, Credentials | Region | HttpClient.HttpClient>;
export type DeleteIndexError = NotFoundException | ServiceUnavailableException | CommonErrors;
/**
 * Deletes a vector index. To specify the vector index, you can either use both the vector bucket name and vector index name, or use the vector index Amazon Resource Name (ARN).
 *
 * ### Permissions
 *
 * You must have the `s3vectors:DeleteIndex` permission to use this operation.
 */
export declare const deleteIndex: API.OperationMethod<DeleteIndexInput, DeleteIndexOutput, DeleteIndexError, Credentials | Region | HttpClient.HttpClient>;
export type GetIndexError = NotFoundException | ServiceUnavailableException | CommonErrors;
/**
 * Returns vector index attributes. To specify the vector index, you can either use both the vector bucket name and the vector index name, or use the vector index Amazon Resource Name (ARN).
 *
 * ### Permissions
 *
 * You must have the `s3vectors:GetIndex` permission to use this operation.
 */
export declare const getIndex: API.OperationMethod<GetIndexInput, GetIndexOutput, GetIndexError, Credentials | Region | HttpClient.HttpClient>;
export type ListIndexesError = NotFoundException | ServiceUnavailableException | CommonErrors;
/**
 * Returns a list of all the vector indexes within the specified vector bucket. To specify the bucket, you must use either the vector bucket name or the vector bucket Amazon Resource Name (ARN).
 *
 * ### Permissions
 *
 * You must have the `s3vectors:ListIndexes` permission to use this operation.
 */
export declare const listIndexes: API.OperationMethod<ListIndexesInput, ListIndexesOutput, ListIndexesError, Credentials | Region | HttpClient.HttpClient> & {
    pages: (input: ListIndexesInput) => stream.Stream<ListIndexesOutput, ListIndexesError, Credentials | Region | HttpClient.HttpClient>;
    items: (input: ListIndexesInput) => stream.Stream<IndexSummary, ListIndexesError, Credentials | Region | HttpClient.HttpClient>;
};
export type DeleteVectorsError = AccessDeniedException | KmsDisabledException | KmsInvalidKeyUsageException | KmsInvalidStateException | KmsNotFoundException | NotFoundException | ServiceUnavailableException | CommonErrors;
/**
 * Deletes one or more vectors in a vector index. To specify the vector index, you can either use both the vector bucket name and vector index name, or use the vector index Amazon Resource Name (ARN).
 *
 * ### Permissions
 *
 * You must have the `s3vectors:DeleteVectors` permission to use this operation.
 */
export declare const deleteVectors: API.OperationMethod<DeleteVectorsInput, DeleteVectorsOutput, DeleteVectorsError, Credentials | Region | HttpClient.HttpClient>;
export type GetVectorsError = KmsDisabledException | KmsInvalidKeyUsageException | KmsInvalidStateException | KmsNotFoundException | NotFoundException | ServiceUnavailableException | CommonErrors;
/**
 * Returns vector attributes. To specify the vector index, you can either use both the vector bucket name and the vector index name, or use the vector index Amazon Resource Name (ARN).
 *
 * ### Permissions
 *
 * You must have the `s3vectors:GetVectors` permission to use this operation.
 */
export declare const getVectors: API.OperationMethod<GetVectorsInput, GetVectorsOutput, GetVectorsError, Credentials | Region | HttpClient.HttpClient>;
export type ListVectorsError = AccessDeniedException | NotFoundException | ServiceUnavailableException | CommonErrors;
/**
 * List vectors in the specified vector index. To specify the vector index, you can either use both the vector bucket name and the vector index name, or use the vector index Amazon Resource Name (ARN).
 *
 * `ListVectors` operations proceed sequentially; however, for faster performance on a large number of vectors in a vector index, applications can request a parallel `ListVectors` operation by providing the `segmentCount` and `segmentIndex` parameters.
 *
 * ### Permissions
 *
 * You must have the `s3vectors:ListVectors` permission to use this operation. Additional permissions are required based on the request parameters you specify:
 *
 * - With only `s3vectors:ListVectors` permission, you can list vector keys when `returnData` and `returnMetadata` are both set to false or not specified..
 *
 * - If you set `returnData` or `returnMetadata` to true, you must have both `s3vectors:ListVectors` and `s3vectors:GetVectors` permissions. The request fails with a `403 Forbidden` error if you request vector data or metadata without the `s3vectors:GetVectors` permission.
 */
export declare const listVectors: API.OperationMethod<ListVectorsInput, ListVectorsOutput, ListVectorsError, Credentials | Region | HttpClient.HttpClient> & {
    pages: (input: ListVectorsInput) => stream.Stream<ListVectorsOutput, ListVectorsError, Credentials | Region | HttpClient.HttpClient>;
    items: (input: ListVectorsInput) => stream.Stream<ListOutputVector, ListVectorsError, Credentials | Region | HttpClient.HttpClient>;
};
export type PutVectorsError = AccessDeniedException | KmsDisabledException | KmsInvalidKeyUsageException | KmsInvalidStateException | KmsNotFoundException | NotFoundException | ServiceQuotaExceededException | ServiceUnavailableException | CommonErrors;
/**
 * Adds one or more vectors to a vector index. To specify the vector index, you can either use both the vector bucket name and the vector index name, or use the vector index Amazon Resource Name (ARN).
 *
 * For more information about limits, see Limitations and restrictions in the *Amazon S3 User Guide*.
 *
 * When inserting vector data into your vector index, you must provide the vector data as `float32` (32-bit floating point) values. If you pass higher-precision values to an Amazon Web Services SDK, S3 Vectors converts the values to 32-bit floating point before storing them, and `GetVectors`, `ListVectors`, and `QueryVectors` operations return the float32 values. Different Amazon Web Services SDKs may have different default numeric types, so ensure your vectors are properly formatted as `float32` values regardless of which SDK you're using. For example, in Python, use `numpy.float32` or explicitly cast your values.
 *
 * ### Permissions
 *
 * You must have the `s3vectors:PutVectors` permission to use this operation.
 */
export declare const putVectors: API.OperationMethod<PutVectorsInput, PutVectorsOutput, PutVectorsError, Credentials | Region | HttpClient.HttpClient>;
export type QueryVectorsError = KmsDisabledException | KmsInvalidKeyUsageException | KmsInvalidStateException | KmsNotFoundException | NotFoundException | ServiceUnavailableException | CommonErrors;
/**
 * Performs an approximate nearest neighbor search query in a vector index using a query vector. By default, it returns the keys of approximate nearest neighbors. You can optionally include the computed distance (between the query vector and each vector in the response), the vector data, and metadata of each vector in the response.
 *
 * To specify the vector index, you can either use both the vector bucket name and the vector index name, or use the vector index Amazon Resource Name (ARN).
 *
 * ### Permissions
 *
 * You must have the `s3vectors:QueryVectors` permission to use this operation. Additional permissions are required based on the request parameters you specify:
 *
 * - With only `s3vectors:QueryVectors` permission, you can retrieve vector keys of approximate nearest neighbors and computed distances between these vectors. This permission is sufficient only when you don't set any metadata filters and don't request vector data or metadata (by keeping the `returnMetadata` parameter set to `false` or not specified).
 *
 * - If you specify a metadata filter or set `returnMetadata` to true, you must have both `s3vectors:QueryVectors` and `s3vectors:GetVectors` permissions. The request fails with a `403 Forbidden error` if you request metadata filtering, vector data, or metadata without the `s3vectors:GetVectors` permission.
 */
export declare const queryVectors: API.OperationMethod<QueryVectorsInput, QueryVectorsOutput, QueryVectorsError, Credentials | Region | HttpClient.HttpClient>;
export {};
//# sourceMappingURL=s3vectors.d.ts.map