import { AwsCredentialIdentity } from "@aws-sdk/types";
import { MapStream } from "event-stream";
interface S3UploadOptions {
    Bucket?: string;
    bucket?: string;
    keyTransform?: (filename: string) => string;
    nameTransform?: (filename: string) => string;
    mimeTypeLookup?: (keyname: string) => string;
    charset?: string;
    metadataMap?: Record<string, string> | ((keyname: string) => Record<string, string>);
    manualContentEncoding?: string | ((keyname: string) => string);
    etag_hash?: string;
    uploadNewFilesOnly?: boolean;
    onNoChange?: (keyname: string) => void;
    onNew?: (keyname: string) => void;
    maps?: Record<string, (keyname: string) => any>;
    verbose?: boolean;
    [key: string]: any;
}
interface S3Credentials extends AwsCredentialIdentity {
    useIAM?: boolean;
    region?: string;
}
interface S3Config {
    region?: string;
    [key: string]: any;
}
/**
 * Main export function that creates an S3 upload gulp plugin
 */
export default function (credentialsOrConfig?: Partial<S3Credentials>, s3Config?: S3Config): (options: S3UploadOptions) => MapStream;
export {};
