export declare const streamStatus: {
    readonly Active: "active";
    readonly Inactive: "inactive";
    readonly Provisioning: "provisioning";
};
export type StreamStatus = (typeof streamStatus)[keyof typeof streamStatus];
export declare const streamType: {
    readonly AuditLogs: "audit_logs";
    readonly LKEAuditLogs: "lke_audit_logs";
};
export type StreamType = (typeof streamType)[keyof typeof streamType];
export interface AuditData {
    created: string;
    created_by: string;
    updated: string;
    updated_by: string;
}
export interface Stream extends AuditData {
    destinations: DestinationCore[];
    details: StreamDetailsType;
    id: number;
    label: string;
    status: StreamStatus;
    type: StreamType;
    version: string;
}
export interface StreamDetails {
    cluster_ids?: number[];
    is_auto_add_all_clusters_enabled?: boolean;
}
export type StreamDetailsType = null | StreamDetails;
export declare const destinationType: {
    readonly CustomHttps: "custom_https";
    readonly AkamaiObjectStorage: "akamai_object_storage";
};
export type DestinationType = (typeof destinationType)[keyof typeof destinationType];
export interface DestinationCore {
    details: DestinationDetails;
    id: number;
    label: string;
    type: DestinationType;
}
export interface Destination extends DestinationCore, AuditData {
    version: string;
}
export type DestinationDetails = AkamaiObjectStorageDetails | CustomHTTPSDetails;
export interface AkamaiObjectStorageDetails {
    access_key_id: string;
    bucket_name: string;
    host: string;
    path: string;
}
export interface AkamaiObjectStorageDetailsExtended extends AkamaiObjectStorageDetails {
    access_key_secret: string;
}
export declare const contentType: {
    readonly Json: "application/json";
    readonly JsonUtf8: "application/json; charset=utf-8";
};
export type ContentType = (typeof contentType)[keyof typeof contentType] | null;
export declare const dataCompressionType: {
    readonly Gzip: "gzip";
    readonly None: "None";
};
export type DataCompressionType = (typeof dataCompressionType)[keyof typeof dataCompressionType];
export interface CustomHTTPSDetails {
    authentication: Authentication;
    client_certificate_details?: ClientCertificateDetails;
    content_type?: ContentType;
    custom_headers?: CustomHeader[];
    data_compression: DataCompressionType;
    endpoint_url: string;
}
export interface CustomHTTPSDetailsExtended extends CustomHTTPSDetails {
    authentication: Authentication & {
        details?: AuthenticationDetailsExtended;
    };
}
interface ClientCertificateDetails {
    client_ca_certificate?: string;
    client_certificate?: string;
    client_private_key?: string;
    tls_hostname?: string;
}
export declare const authenticationType: {
    readonly Basic: "basic";
    readonly None: "none";
};
export type AuthenticationType = (typeof authenticationType)[keyof typeof authenticationType];
interface Authentication {
    details?: AuthenticationDetails;
    type: AuthenticationType;
}
interface AuthenticationDetails {
    basic_authentication_user: string;
}
interface AuthenticationDetailsExtended extends AuthenticationDetails {
    basic_authentication_password: string;
}
export interface CustomHeader {
    name: string;
    value: string;
}
export interface CreateStreamPayload {
    destinations: number[];
    details?: StreamDetailsType;
    label: string;
    status?: StreamStatus;
    type: StreamType;
}
export interface UpdateStreamPayload {
    destinations: number[];
    details?: StreamDetailsType;
    label: string;
    status: StreamStatus;
}
export interface UpdateStreamPayloadWithId extends UpdateStreamPayload {
    id: number;
}
export interface AkamaiObjectStorageDetailsPayload extends Omit<AkamaiObjectStorageDetailsExtended, 'path'> {
    path?: string;
}
export type DestinationDetailsPayload = AkamaiObjectStorageDetailsPayload | CustomHTTPSDetailsExtended;
export interface CreateDestinationPayload {
    details: DestinationDetailsPayload;
    label: string;
    type: DestinationType;
}
export type UpdateDestinationPayload = Omit<CreateDestinationPayload, 'type'>;
export interface UpdateDestinationPayloadWithId extends UpdateDestinationPayload {
    id: number;
}
export {};
//# sourceMappingURL=types.d.ts.map