import { GetSegmentPopulationResultsByIds } from '../definitions/GetSegmentPopulationResultsByIds'
import { GetSegmentPopulationResultsByIdsResponse } from '../definitions/GetSegmentPopulationResultsByIdsResponse'
import { PerformSegmentPopulationAction } from '../definitions/PerformSegmentPopulationAction'
import { PerformSegmentPopulationActionResponse } from '../definitions/PerformSegmentPopulationActionResponse'
import { UpdateSegmentMemberships } from '../definitions/UpdateSegmentMemberships'
import { UpdateSegmentMembershipsResponse } from '../definitions/UpdateSegmentMembershipsResponse'

export interface SegmentPopulationServiceInterfacePort {
  getSegmentPopulationResultsByIds(
    getSegmentPopulationResultsByIds: GetSegmentPopulationResultsByIds,
    callback: (
      err: any,
      result: GetSegmentPopulationResultsByIdsResponse,
      rawResponse: any,
      soapHeader: any,
      rawRequest: any,
    ) => void,
  ): void
  performSegmentPopulationAction(
    performSegmentPopulationAction: PerformSegmentPopulationAction,
    callback: (
      err: any,
      result: PerformSegmentPopulationActionResponse,
      rawResponse: any,
      soapHeader: any,
      rawRequest: any,
    ) => void,
  ): void
  updateSegmentMemberships(
    updateSegmentMemberships: UpdateSegmentMemberships,
    callback: (
      err: any,
      result: UpdateSegmentMembershipsResponse,
      rawResponse: any,
      soapHeader: any,
      rawRequest: any,
    ) => void,
  ): void
}
