export interface MetadataConfiguration {
    /** Non-filterable metadata keys allow you to enrich vectors with additional context during storage and retrieval. Unlike default metadata keys, these keys can’t be used as query filters. Non-filterable m */
    nonFilterableMetadataKeys: string[];
}
export interface EncryptionConfiguration {
    /** The server-side encryption type to use for the encryption configuration of the vector bucket. By default, if you don't specify, all new vectors in Amazon S3 vector buckets use server-side encryption w */
    sseType?: 'AES256' | 'aws:kms';
    /** Amazon Web Services Key Management Service (KMS) customer managed key ID to use for the encryption configuration. This parameter is allowed if and only if sseType is set to aws:kms. To specify the KMS */
    kmsKeyArn?: string;
}
export interface PutInputVector {
    /** The name of the vector. The key uniquely identifies the vector in a vector index. */
    key: string;
    /** The vector data of the vector. Vector dimensions must match the dimension count that's configured for the vector index. For the cosine distance metric, zero vectors (vectors containing all zeros) aren */
    data: any;
    /** Metadata about the vector. All metadata entries undergo validation to ensure they meet the format requirements for size and data types. */
    metadata?: any;
}
export interface CreateIndexInput {
    /** The data type of the vectors to be inserted into the vector index. */
    dataType: 'float32';
    /** The dimensions of the vectors to be inserted into the vector index. */
    dimension: number;
    /** The distance metric to be used for similarity search. */
    distanceMetric: 'euclidean' | 'cosine';
    /** The name of the vector index to create. */
    indexName: string;
    /** The encryption configuration for a vector index. By default, if you don't specify, all new vectors in the vector index will use the encryption configuration of the vector bucket. */
    encryptionConfiguration?: EncryptionConfiguration;
    /** The metadata configuration for the vector index. */
    metadataConfiguration?: MetadataConfiguration;
    /** An array of user-defined tags that you would like to apply to the vector index that you are creating. A tag is a key-value pair that you apply to your resources. Tags can help you organize, track cost */
    tags?: Record<string, string>;
    /** The Amazon Resource Name (ARN) of the vector bucket to create the vector index in. */
    vectorBucketArn?: string;
    /** The name of the vector bucket to create the vector index in. */
    vectorBucketName?: string;
}
export interface CreateVectorBucketInput {
    /** The name of the vector bucket to create. */
    vectorBucketName: string;
    /** The encryption configuration for the vector bucket. By default, if you don't specify, all new vectors in Amazon S3 vector buckets use server-side encryption with Amazon S3 managed keys (SSE-S3), speci */
    encryptionConfiguration?: EncryptionConfiguration;
    /** An array of user-defined tags that you would like to apply to the vector bucket that you are creating. A tag is a key-value pair that you apply to your resources. Tags can help you organize and contro */
    tags?: Record<string, string>;
}
export interface DeleteIndexInput {
    /** The ARN of the vector index to delete. */
    indexArn?: string;
    /** The name of the vector index to delete. */
    indexName?: string;
    /** The name of the vector bucket that contains the vector index. */
    vectorBucketName?: string;
}
export interface DeleteVectorBucketInput {
    /** The ARN of the vector bucket to delete. */
    vectorBucketArn?: string;
    /** The name of the vector bucket to delete. */
    vectorBucketName?: string;
}
export interface DeleteVectorBucketPolicyInput {
    /** The ARN of the vector bucket to delete the policy from. */
    vectorBucketArn?: string;
    /** The name of the vector bucket to delete the policy from. */
    vectorBucketName?: string;
}
export interface DeleteVectorsInput {
    /** The keys of the vectors to delete. */
    keys: string[];
    /** The ARN of the vector index that contains a vector you want to delete. */
    indexArn?: string;
    /** The name of the vector index that contains a vector you want to delete. */
    indexName?: string;
    /** The name of the vector bucket that contains the vector index. */
    vectorBucketName?: string;
}
export interface GetIndexInput {
    /** The ARN of the vector index. */
    indexArn?: string;
    /** The name of the vector index. */
    indexName?: string;
    /** The name of the vector bucket that contains the vector index. */
    vectorBucketName?: string;
}
export interface GetVectorBucketInput {
    /** The ARN of the vector bucket to retrieve information about. */
    vectorBucketArn?: string;
    /** The name of the vector bucket to retrieve information about. */
    vectorBucketName?: string;
}
export interface GetVectorBucketPolicyInput {
    /** The ARN of the vector bucket. */
    vectorBucketArn?: string;
    /** The name of the vector bucket. */
    vectorBucketName?: string;
}
export interface GetVectorsInput {
    /** The names of the vectors you want to return attributes for. */
    keys: string[];
    /** The ARN of the vector index. */
    indexArn?: string;
    /** The name of the vector index. */
    indexName?: string;
    /** Indicates whether to include the vector data in the response. The default value is false. */
    returnData?: boolean;
    /** Indicates whether to include metadata in the response. The default value is false. */
    returnMetadata?: boolean;
    /** The name of the vector bucket that contains the vector index. */
    vectorBucketName?: string;
}
export interface ListIndexesInput {
    /** The maximum number of items to be returned in the response. */
    maxResults?: number;
    /** The previous pagination token. */
    nextToken?: string;
    /** Limits the response to vector indexes that begin with the specified prefix. */
    prefix?: string;
    /** The ARN of the vector bucket that contains the vector indexes. */
    vectorBucketArn?: string;
    /** The name of the vector bucket that contains the vector indexes. */
    vectorBucketName?: string;
}
export interface ListTagsForResourceInput {
    /** The Amazon Resource Name (ARN) of the Amazon S3 Vectors resource that you want to list tags for. The tagged resource can be a vector bucket or a vector index. */
    resourceArn: string;
}
export interface ListVectorBucketsInput {
    /** The maximum number of vector buckets to be returned in the response. */
    maxResults?: number;
    /** The previous pagination token. */
    nextToken?: string;
    /** Limits the response to vector buckets that begin with the specified prefix. */
    prefix?: string;
}
export interface ListVectorsInput {
    /** The Amazon resource Name (ARN) of the vector index. */
    indexArn?: string;
    /** The name of the vector index. */
    indexName?: string;
    /** The maximum number of vectors to return on a page. If you don't specify maxResults, the ListVectors operation uses a default value of 500. If the processed dataset size exceeds 1 MB before reaching th */
    maxResults?: number;
    /** Pagination token from a previous request. The value of this field is empty for an initial request. */
    nextToken?: string;
    /** If true, the vector data of each vector will be included in the response. The default value is false. */
    returnData?: boolean;
    /** If true, the metadata associated with each vector will be included in the response. The default value is false. */
    returnMetadata?: boolean;
    /** For a parallel ListVectors request, segmentCount represents the total number of vector segments into which the ListVectors operation will be divided. The value of segmentCount corresponds to the numbe */
    segmentCount?: number;
    /** For a parallel ListVectors request, segmentIndex is the index of the segment from which to list vectors in the current request. It identifies an individual segment to be listed by an application worke */
    segmentIndex?: number;
    /** The name of the vector bucket. */
    vectorBucketName?: string;
}
export interface PutVectorBucketPolicyInput {
    /** The JSON that defines the policy. For more information about bucket policies for S3 Vectors, see Managing vector bucket policies in the Amazon S3 User Guide. */
    policy: string;
    /** The Amazon Resource Name (ARN) of the vector bucket. */
    vectorBucketArn?: string;
    /** The name of the vector bucket. */
    vectorBucketName?: string;
}
export interface PutVectorsInput {
    /** The vectors to add to a vector index. The number of vectors in a single request must not exceed the resource capacity, otherwise the request will be rejected with the error ServiceUnavailableException */
    vectors: PutInputVector[];
    /** The ARN of the vector index where you want to write vectors. */
    indexArn?: string;
    /** The name of the vector index where you want to write vectors. */
    indexName?: string;
    /** The name of the vector bucket that contains the vector index. */
    vectorBucketName?: string;
}
export interface QueryVectorsInput {
    /** The query vector. Ensure that the query vector has the same dimension as the dimension of the vector index that's being queried. For example, if your vector index contains vectors with 384 dimensions, */
    queryVector: {
        float32?: number[];
    };
    /** The number of results to return for each query. */
    topK: number;
    /** Metadata filter to apply during the query. For more information about metadata keys, see Metadata filtering in the Amazon S3 User Guide. */
    filter?: any;
    /** The ARN of the vector index that you want to query. */
    indexArn?: string;
    /** The name of the vector index that you want to query. */
    indexName?: string;
    /** Indicates whether to include the computed distance in the response. The default value is false. */
    returnDistance?: boolean;
    /** Indicates whether to include metadata in the response. The default value is false. */
    returnMetadata?: boolean;
    /** The name of the vector bucket that contains the vector index. */
    vectorBucketName?: string;
}
export interface TagResourceInput {
    /** The Amazon Resource Name (ARN) of the Amazon S3 Vectors resource that you're applying tags to. The tagged resource can be a vector bucket or a vector index. */
    resourceArn: string;
    /** The user-defined tag that you want to add to the specified S3 Vectors resource. For more information, see Tagging for cost allocation or attribute-based access control (ABAC). */
    tags: Record<string, string>;
}
export interface UntagResourceInput {
    /** The Amazon Resource Name (ARN) of the Amazon S3 Vectors resource that you're removing tags from. The tagged resource can be a vector bucket or a vector index. */
    resourceArn: string;
    /** The array of tag keys that you're removing from the S3 Vectors resource. For more information, see Tagging for cost allocation or attribute-based access control (ABAC). */
    tagKeys: string[];
}
/** S3Vectors service binding for Step Functions SDK integrations. */
export declare class S3Vectors {
    constructor();
    createIndex<T>(params: CreateIndexInput): Promise<T>;
    createVectorBucket<T>(params: CreateVectorBucketInput): Promise<T>;
    deleteIndex<T>(params: DeleteIndexInput): Promise<T>;
    deleteVectorBucket<T>(params: DeleteVectorBucketInput): Promise<T>;
    deleteVectorBucketPolicy<T>(params: DeleteVectorBucketPolicyInput): Promise<T>;
    deleteVectors<T>(params: DeleteVectorsInput): Promise<T>;
    getIndex<T>(params: GetIndexInput): Promise<T>;
    getVectorBucket<T>(params: GetVectorBucketInput): Promise<T>;
    getVectorBucketPolicy<T>(params: GetVectorBucketPolicyInput): Promise<T>;
    getVectors<T>(params: GetVectorsInput): Promise<T>;
    listIndexes<T>(params: ListIndexesInput): Promise<T>;
    listTagsForResource<T>(params: ListTagsForResourceInput): Promise<T>;
    listVectorBuckets<T>(params: ListVectorBucketsInput): Promise<T>;
    listVectors<T>(params: ListVectorsInput): Promise<T>;
    putVectorBucketPolicy<T>(params: PutVectorBucketPolicyInput): Promise<T>;
    putVectors<T>(params: PutVectorsInput): Promise<T>;
    queryVectors<T>(params: QueryVectorsInput): Promise<T>;
    tagResource<T>(params: TagResourceInput): Promise<T>;
    untagResource<T>(params: UntagResourceInput): Promise<T>;
}
//# sourceMappingURL=S3Vectors.d.ts.map