import { RealmFilter } from '../../core/webdomain/UserAgentIdentifierRealmSelectionInterface';
export type AudienceFeedConnectorStatus = 'ok' | 'error' | 'retry' | 'no_eligible_identifier';
export declare type AudienceFeedConnectorConnectionStatus = 'ok' | 'error' | 'external_segment_not_ready_yet';
export declare type AudienceFeedConnectorTroubleshootStatus = 'ok' | 'error' | 'not_implemented';
export declare type AudienceFeedConnectorAuthenticationStatus = 'authenticated' | 'not_authenticated' | 'error' | 'not_implemented';
export declare type AudienceFeedAuthenticationStatus = 'ok' | 'error' | 'not_implemented';
export declare type AudienceFeedLogoutStatus = 'ok' | 'error' | 'not_implemented';
export declare type AudienceFeedConnectorDynamicPropertyValuesQueryStatus = 'ok' | 'error' | 'not_implemented';
export type AudienceFeedConnectorContentType = 'text/csv' | 'application/json' | 'text/plain';
export interface UserSegmentUpdatePluginResponse {
    status: AudienceFeedConnectorStatus;
    data?: UserSegmentUpdatePluginFileDeliveryResponseData[];
    stats?: UserSegmentUpdatePluginResponseStats[];
    message?: string;
    next_msg_delay_in_ms?: number;
}
export interface BatchedUserSegmentUpdatePluginResponse<T> {
    status: AudienceFeedConnectorStatus;
    data?: UserSegmentUpdatePluginBatchDeliveryResponseData<T>[];
    stats?: UserSegmentUpdatePluginResponseStats[];
    message?: string;
    next_msg_delay_in_ms?: number;
}
export type DeliveryType<T> = UserSegmentUpdatePluginFileDeliveryResponseData | UserSegmentUpdatePluginBatchDeliveryResponseData<T>;
export interface UserSegmentUpdatePluginFileDeliveryResponseData extends UserSegmentUpdatePluginDeliveryContent<string> {
    type: 'FILE_DELIVERY';
    destination_token: string;
}
export interface UserSegmentUpdatePluginBatchDeliveryResponseData<T> extends UserSegmentUpdatePluginDeliveryContent<T> {
    type: 'BATCH_DELIVERY';
}
export interface UserSegmentUpdatePluginDeliveryContent<T> {
    content: T;
    grouping_key: string;
}
type SyncResult = 'PROCESSED' | 'SUCCESS' | 'REJECTED';
export interface UserSegmentUpdatePluginResponseStats {
    identifier: string;
    sync_result: SyncResult;
    tags?: AudienceFeedStatTag[];
}
export interface ExternalSegmentCreationPluginResponse {
    status: AudienceFeedConnectorStatus;
    message?: string;
    visibility?: Visibility;
}
export interface ExternalSegmentConnectionPluginResponse {
    status: AudienceFeedConnectorConnectionStatus;
    message?: string;
}
export interface ExternalSegmentTroubleshootResponse {
    status: AudienceFeedConnectorTroubleshootStatus;
    message?: string;
    data?: any;
}
export interface ExternalSegmentAuthenticationStatusQueryResponse {
    status: AudienceFeedConnectorAuthenticationStatus;
    message?: string;
    data?: {
        login_url?: string;
        [key: string]: any;
    };
}
export interface ExternalSegmentAuthenticationResponse {
    status: AudienceFeedAuthenticationStatus;
    message?: string;
}
export interface ExternalSegmentLogoutResponse {
    status: AudienceFeedLogoutStatus;
    message?: string;
}
export interface ExternalSegmentDynamicPropertyValuesQueryResponse {
    status: AudienceFeedConnectorDynamicPropertyValuesQueryStatus;
    message?: string;
    data?: {
        property_technical_name: string;
        enum: {
            label: string;
            value: string;
        }[];
        [key: string]: any;
    }[];
}
export interface AudienceFeedStatTag {
    key: string;
    value: string;
}
export type Visibility = 'PRIVATE' | 'PUBLIC';
export declare class AudienceFeedInstanceContextError extends Error {
    message: string;
    visibility: Visibility;
    constructor(message: string);
}
export declare class MissingConfigurationPropertyError extends AudienceFeedInstanceContextError {
    feed_id: string;
    property_name: string;
    log: string;
    constructor(feed_id: string, property_name: string);
}
export declare class MandatoryPropertyValueError extends AudienceFeedInstanceContextError {
    feed_id: string;
    property_name: string;
    log: string;
    constructor(feed_id: string, property_name: string);
}
export declare class InvalidPropertyValueError extends AudienceFeedInstanceContextError {
    feed_id: string;
    property_name: string;
    property_value: string;
    allowed: string[];
    log: string;
    constructor(feed_id: string, property_name: string, property_value: string, allowed: string[]);
}
export declare class FileDownloadError extends AudienceFeedInstanceContextError {
    feed_id: string;
    file_name: string;
    log: string;
    constructor(feed_id: string, file_name: string);
}
export declare class MissingRealmError extends AudienceFeedInstanceContextError {
    datamart_id: string;
    realmFilter: RealmFilter;
    log: string;
    constructor(datamart_id: string, realmFilter: RealmFilter);
}
export {};
