import { BasePlugin, PluginProperty, AudienceFeedConnectorBaseInstanceContext, AudienceFeed, UserSegmentUpdateRequest, ExternalSegmentCreationRequest, ExternalSegmentConnectionRequest, ExternalSegmentCreationPluginResponse, ExternalSegmentConnectionPluginResponse, UserSegmentUpdatePluginResponse, AudienceSegment } from "../../../index";
export declare abstract class AudienceFeedConnectorBasePlugin extends BasePlugin {
    instanceContext: Promise<AudienceFeedConnectorBaseInstanceContext>;
    fetchAudienceSegment(feedId: string): Promise<AudienceSegment>;
    fetchAudienceFeed(feedId: string): Promise<AudienceFeed>;
    fetchAudienceFeedProperties(feedId: string): Promise<PluginProperty[]>;
    protected instanceContextBuilder(feedId: string): Promise<AudienceFeedConnectorBaseInstanceContext>;
    protected abstract onExternalSegmentCreation(request: ExternalSegmentCreationRequest, instanceContext: AudienceFeedConnectorBaseInstanceContext): Promise<ExternalSegmentCreationPluginResponse>;
    protected abstract onExternalSegmentConnection(request: ExternalSegmentConnectionRequest, instanceContext: AudienceFeedConnectorBaseInstanceContext): Promise<ExternalSegmentConnectionPluginResponse>;
    protected abstract onUserSegmentUpdate(request: UserSegmentUpdateRequest, instanceContext: AudienceFeedConnectorBaseInstanceContext): Promise<UserSegmentUpdatePluginResponse>;
    private emptyBodyFilter(req, res, next);
    private getInstanceContext(feedId);
    private initExternalSegmentCreation();
    private initExternalSegmentConnection();
    private initUserSegmentUpdate();
    constructor();
}
