import type { AwsCredentialIdentity, Provider, Endpoint, EndpointV2, UserAgent } from "@smithy/types";
import type { Reporter } from "@playwright/test/reporter";
export interface S3ReporterOptions {
    /**
     * AWS credentials required for authentication.
     * @property {string} accessKeyId - AWS access key ID.
     * @property {string} secretAccessKey - AWS secret access key.
     */
    credentials: AwsCredentialIdentity | Provider<AwsCredentialIdentity>;
    /**
     * The endpoint URL of the S3 service.
     * Optional. If not specified, the default AWS endpoint is used.
     * @default s3.<region>.amazonaws.com
     */
    endpoint?: string | Endpoint | Provider<Endpoint> | EndpointV2 | Provider<EndpointV2>;
    /**
     * Flag to enable or disable SSL for the connection.
     * Optional. Defaults to true if not provided.
     * @default true
     */
    sslEnabled?: boolean;
    /**
     * AWS region where the S3 bucket is located.
     * Optional. If not specified, the default region is used.
     */
    region?: string | Provider<string>;
    /**
     * A custom user agent string to be used in requests to AWS services.
     * Optional.
     */
    customUserAgent?: string | UserAgent;
    /**
     * The maximum number of attempts to make for a request.
     * Optional. If not specified, the default retry strategy is used.
     */
    maxAttempts?: number | Provider<number>;
    /**
     * The name of the S3 bucket where reports will be uploaded.
     */
    bucketName: string;
    /**
     * The base key (prefix) under which the reports will be uploaded in the bucket.
     * Optional. If not provided, files are uploaded to the root of the bucket.
     */
    baseUploadKey?: string;
    /**
     * Flag to enable or disable the upload of test results.
     * Optional. Defaults to false if not provided.
     * @default false
     */
    uploadTestResults?: boolean;
    /**
     * Flag to enable or disable the upload of the report.
     * Optional. Defaults to false if not provided.
     * @default false
     */
    uploadReport?: boolean;
}
declare class S3Reporter implements Reporter {
    protected options: S3ReporterOptions;
    constructor(options: S3ReporterOptions);
    onExit(): Promise<void>;
    protected getFiles(directory: string): Promise<string[]>;
}
export default S3Reporter;
