import BaseService from '../../Core/BaseService';
import Session from '../../Services/Identity/Session';
export type CreateSpeedFactor = {
    service_area_id: number;
    start_date_day?: number;
    start_date_month?: number;
    end_date_day?: number;
    end_date_month?: number;
    factor: number;
    days_of_week?: number[];
    intervals?: [number, number][];
    original_uuid?: string;
};
export type UpdateSpeedFactor = {
    service_area_id: number;
    start_date_day?: number;
    start_date_month?: number;
    end_date_day?: number;
    end_date_month?: number;
    db_id: string;
    factor: number;
    day_of_week: number;
    interval: [number, number];
    original_uuid: string;
};
export type UpdateSpeedFactorSeries = {
    service_area_id: number;
    start_date_day?: number;
    start_date_month?: number;
    end_date_day?: number;
    end_date_month?: number;
    factor: number;
    original_uuid: string;
};
export type SpeedFactor = {
    id: string;
    service_area_id: number;
    merchant_id: number;
    merchant_uuid: string;
    start_date: string;
    end_date: string;
    factor: number;
    day_of_week: number;
    interval_start: number;
    interval_end: number;
    original_uuid: string;
    created_at: string;
    updated_at: string;
};
export type CreateSpeedFactorResponse = {
    success: boolean;
    request_id: string;
    request_uuid: string;
    created: SpeedFactor[];
};
export type ListSpeedFactorResponse = {
    success: boolean;
    request_id: string;
    request_uuid: string;
    read: SpeedFactor[];
};
export type UpdateSpeedFactorResponse = {
    success: boolean;
    request_id: string;
    request_uuid: string;
    updated: SpeedFactor[];
};
export type DeleteSpeedFactorResponse = {
    success: boolean;
    request_id: string;
    request_uuid: string;
    deleted: number;
};
export default class SpeedFactorService extends BaseService<SpeedFactorService> {
    constructor(session: Session);
    create(payload: CreateSpeedFactor): Promise<CreateSpeedFactorResponse>;
    list(serviceAreaId: number): Promise<ListSpeedFactorResponse>;
    update(payload: UpdateSpeedFactor): Promise<UpdateSpeedFactorResponse>;
    updateSeries(payload: UpdateSpeedFactorSeries): Promise<UpdateSpeedFactorResponse>;
    delete(dbId: string): Promise<DeleteSpeedFactorResponse>;
    deleteSeries(originalUuid: string): Promise<DeleteSpeedFactorResponse>;
}
