import { SQSClient } from '@aws-sdk/client-sqs';
import { BackgroundEntry } from '../background-entry';
import { BackgroundAwsConfig } from '../../config/background/background-aws-config';
import { InternalBackgroundEntry } from '../internal-background-entry';
import { SNSClient } from '@aws-sdk/client-sns';
import { AwsSqsSnsBackgroundManager } from './aws-sqs-sns-background-manager';
import { S3CacheRatchetLike } from '@bitblit/ratchet/aws';
/**
 * Handles all submission of work to the background processing system.
 *
 * Note that this does NOT validate the input, it just passes it along.  This is
 * because it creates a circular reference to the processors if we try since they
 * define the type and validation.
 */
export declare class AwsLargePayloadS3SqsSnsBackgroundManager extends AwsSqsSnsBackgroundManager {
    private _s3;
    private pathPrefix;
    private static readonly LARGE_MESSAGE_SIZE_THRESHOLD;
    private static readonly LARGE_MESSAGE_S3_PATH_META_KEY;
    constructor(_awsConfig: BackgroundAwsConfig, _sqs: SQSClient, _sns: SNSClient, _s3: S3CacheRatchetLike, pathPrefix?: string);
    get backgroundManagerName(): string;
    get s3(): S3CacheRatchetLike;
    wrapEntryForInternal<T>(entry: BackgroundEntry<T>, overrideTraceId?: string, overrideTraceDepth?: number): Promise<InternalBackgroundEntry<T>>;
    private writeMessageToS3;
    modify<T>(entry: InternalBackgroundEntry<T>): Promise<InternalBackgroundEntry<T>>;
}
