import * as core from "@terrascript/core";
export interface KinesisStreamConfigArgs extends core.SchemaArgs {
    streamArn: string | core.StringOut;
}
export declare class KinesisStreamConfig extends core.Schema<KinesisStreamConfigArgs> {
    streamArn: string | core.StringOut;
}
export interface EncryptionConfigArgs extends core.SchemaArgs {
    encryptionType: string | core.StringOut;
    keyId: string | core.StringOut;
}
export declare class EncryptionConfig extends core.Schema<EncryptionConfigArgs> {
    encryptionType: string | core.StringOut;
    keyId: string | core.StringOut;
}
export interface KinesisVideoStreamConfigArgs extends core.SchemaArgs {
    encryptionConfig: EncryptionConfig;
    prefix: string | core.StringOut;
    retentionPeriodHours: number | core.NumberOut;
}
export declare class KinesisVideoStreamConfig extends core.Schema<KinesisVideoStreamConfigArgs> {
    encryptionConfig: EncryptionConfig;
    prefix: string | core.StringOut;
    retentionPeriodHours: number | core.NumberOut;
}
export interface S3ConfigArgs extends core.SchemaArgs {
    bucketName: string | core.StringOut;
    bucketPrefix: string | core.StringOut;
    encryptionConfig?: EncryptionConfig;
}
export declare class S3Config extends core.Schema<S3ConfigArgs> {
    bucketName: string | core.StringOut;
    bucketPrefix: string | core.StringOut;
    encryptionConfig?: EncryptionConfig;
}
export interface KinesisFirehoseConfigArgs extends core.SchemaArgs {
    firehoseArn: string | core.StringOut;
}
export declare class KinesisFirehoseConfig extends core.Schema<KinesisFirehoseConfigArgs> {
    firehoseArn: string | core.StringOut;
}
export interface StorageConfigArgs extends core.SchemaArgs {
    kinesisFirehoseConfig?: KinesisFirehoseConfig;
    kinesisStreamConfig?: KinesisStreamConfig;
    kinesisVideoStreamConfig?: KinesisVideoStreamConfig;
    s3Config?: S3Config;
    storageType: string | core.StringOut;
}
export declare class StorageConfig extends core.Schema<StorageConfigArgs> {
    kinesisFirehoseConfig?: KinesisFirehoseConfig;
    kinesisStreamConfig?: KinesisStreamConfig;
    kinesisVideoStreamConfig?: KinesisVideoStreamConfig;
    s3Config?: S3Config;
    storageType: string | core.StringOut;
}
export interface InstanceStorageConfigArgs extends core.ResourceArgs {
    instanceId: string | core.StringOut;
    resourceType: string | core.StringOut;
    storageConfig: StorageConfig;
}
export declare class InstanceStorageConfig extends core.Resource<InstanceStorageConfigArgs> {
    associationId: string | core.StringOut;
    id: string | core.StringOut;
    instanceId: string | core.StringOut;
    resourceType: string | core.StringOut;
    storageConfig: StorageConfig;
    constructor(name: string, args?: InstanceStorageConfigArgs);
    getNamespace(): string;
}
//# sourceMappingURL=instance_storage_config.d.ts.map