///
import express from 'express';
import { PluginProperty } from '../../';
import { AudienceSegmentExternalFeedResource, AudienceSegmentResource } from '../../api/core/audiencesegment/AudienceSegmentInterface';
import { FeedDestinationCredentials } from '../../api/core/audiencesegment/FeedDestinationInterface';
import { BatchUpdatePluginResponse, BatchUpdateRequest } from '../../api/core/batchupdate/BatchUpdateInterface';
import { RealmFilter, UserAgentIdentifierRealmSelectionResource } from '../../api/core/webdomain/UserAgentIdentifierRealmSelectionInterface';
import { BatchedUserSegmentUpdatePluginResponse, CreateOAuthRedirectUrlPluginResponse, TestAuthenticationPluginResponse, ExternalSegmentAuthenticationResponse, ExternalSegmentAuthenticationStatusQueryResponse, ExternalSegmentConnectionPluginResponse, ExternalSegmentCreationPluginResponse, ExternalSegmentDynamicPropertyValuesQueryResponse, ExternalSegmentLogoutResponse, ExternalSegmentTroubleshootResponse, UserSegmentUpdatePluginResponse } from '../../api/plugin/audiencefeedconnector/AudienceFeedConnectorPluginResponseInterface';
import { AudienceFeedBatchContext, CreateOAuthRedirectUrlRequest, TestAuthenticationRequest, ExternalSegmentAuthenticationRequest, ExternalSegmentAuthenticationStatusQueryRequest, ExternalSegmentConnectionRequest, ExternalSegmentCreationRequest, ExternalSegmentDynamicPropertyValuesQueryRequest, ExternalSegmentLogoutRequest, ExternalSegmentTroubleshootRequest, UserSegmentUpdateRequest } from '../../api/plugin/audiencefeedconnector/AudienceFeedConnectorRequestInterface';
import { BasePlugin, PropertiesWrapper } from '../common';
export interface AudienceFeedConnectorBaseInstanceContext {
feed: AudienceSegmentExternalFeedResource;
feedProperties: PropertiesWrapper;
}
declare abstract class GenericAudienceFeedConnectorBasePlugin | UserSegmentUpdatePluginResponse> extends BasePlugin {
constructor(enableThrottling?: boolean);
fetchAudienceSegment(feedId: string): Promise;
fetchUserAgentIdentifierRealms(datamartId: string): Promise>;
checkUserAgentIdentifierRealm(datamartId: string, realmFilter: RealmFilter): Promise;
fetchAudienceFeed(feedId: string): Promise;
fetchAudienceFeedProperties(feedId: string): Promise;
fetchFeedDestinationCredentials(feedDestinationId: string): Promise;
upsertFeedDestinationCredentials(feedDestinationId: string, credentials: FeedDestinationCredentials): Promise;
createAudienceFeedProperties(feedId: string, property: PluginProperty): Promise;
updateAudienceFeedProperties(feedId: string, property: PluginProperty): Promise;
protected instanceContextBuilder(feedId: string): Promise;
protected abstract onExternalSegmentCreation(request: ExternalSegmentCreationRequest, instanceContext: AudienceFeedConnectorBaseInstanceContext): Promise;
protected abstract onExternalSegmentConnection(request: ExternalSegmentConnectionRequest, instanceContext: AudienceFeedConnectorBaseInstanceContext): Promise;
protected abstract onUserSegmentUpdate(request: UserSegmentUpdateRequest, instanceContext: AudienceFeedConnectorBaseInstanceContext): Promise;
protected onTroubleshoot(request: ExternalSegmentTroubleshootRequest, instanceContext: AudienceFeedConnectorBaseInstanceContext): Promise;
protected onAuthenticationStatusQuery(request: ExternalSegmentAuthenticationStatusQueryRequest): Promise;
protected onAuthentication(request: ExternalSegmentAuthenticationRequest): Promise;
protected onLogout(request: ExternalSegmentLogoutRequest): Promise;
protected onDynamicPropertyValuesQuery(request: ExternalSegmentDynamicPropertyValuesQueryRequest): Promise;
protected onTestAuthentication(request: TestAuthenticationRequest, credentials: FeedDestinationCredentials): Promise;
protected onCreateOAuthRedirectUrl(request: CreateOAuthRedirectUrlRequest): Promise;
protected getInstanceContext(feedId: string, forceRefresh?: boolean): Promise;
protected emptyBodyFilter: (req: express.Request, res: express.Response, next: express.NextFunction) => void;
private initExternalSegmentCreation;
private initExternalSegmentConnection;
private initUserSegmentUpdate;
private initTroubleshoot;
private initAuthenticationStatusQuery;
private initAuthentication;
private initLogoutQuery;
private initTestAuthentication;
private initCreateOAuthRedirectUrl;
private initDynamicPropertyValuesQuery;
}
export declare abstract class BatchedAudienceFeedConnectorBasePlugin extends GenericAudienceFeedConnectorBasePlugin> {
constructor(enableThrottling?: boolean);
protected abstract onBatchUpdate(request: BatchUpdateRequest, instanceContext: AudienceFeedConnectorBaseInstanceContext): Promise;
}
export declare abstract class AudienceFeedConnectorBasePlugin extends GenericAudienceFeedConnectorBasePlugin {
constructor(enableThrottling?: boolean);
private initBatchUpdate;
}
export {};