import { IGrantable } from 'aws-cdk-lib/aws-iam'; import { Construct } from 'constructs'; export interface IndexProps { /** * The name of the vector bucket to create the vector index in. */ readonly vectorBucketName: string; /** * The name of the vector index to create. */ readonly indexName: string; /** * The data type of the vectors in the index. Must be 'float32' */ readonly dataType: 'float32'; /** * The dimensions of the vectors to be inserted into the vector index. */ readonly dimension: number; /** * The distance metric to be used for similarity search. */ readonly distanceMetric: 'euclidean' | 'cosine'; /** * The metadata configuration for the vector index. */ readonly metadataConfiguration?: MetadataConfiguration; } 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 metadata keys can be retrieved but can't be searched, queried, or filtered. * You can access non-filterable metadata keys of your vectors after finding the vectors. * For more information about non-filterable metadata keys, see * [Vectors](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-vectors-vectors.html) and * [Limitations and restrictions](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-vectors-limitations.html) * in the *Amazon S3 User Guide*. */ readonly nonFilterableMetadataKeys: string[]; } /** * Amazon S3 Vectors is in preview release for Amazon S3 and is subject to change. * * 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 ARN (Amazon Resource Name). */ export declare class Index extends Construct { /** * The ARN (Amazon Resource Name) of the S3 Vector index. */ readonly indexArn: string; /** * The name of the index. */ readonly indexName: string; /** * @summary Creates a new Index construct for S3 Vectors. * @param {cdk.App} scope - Represents the scope for all resources. * @param {string} id - Scope-unique id. * @param {IndexProps} props - User provided props for the construct. * @access public */ constructor(scope: Construct, id: string, props: IndexProps); /** * Grants write permissions (add/delete vectors) to the index. * @param grantee The principal to grant permissions to. */ grantWrite(grantee: IGrantable): void; }