import { CreateMonitorPayload, Monitor, UpdateMonitorPayload } from '@meshwatch/types';
import { MonitorStorage } from '../models/monitor/storage';
import { ServiceResponse } from '../types';
import BaseService from './base';
export declare class MonitoringService extends BaseService {
    private monitorStorage;
    constructor(monitorStorage?: MonitorStorage);
    bookmarkMonitor: (userId: string, monitorId: string) => Promise<ServiceResponse<(import("@meshwatch/types").CreateMonitorBase & {
        id: string;
        location?: import("@meshwatch/types").Location | undefined;
    } & {
        created: Date;
    }) | (import("@meshwatch/types").CreateMonitorBase & {
        apdex: number;
        regions: string[];
        headers?: import("@meshwatch/types/dist/common").Dictionary<string> | undefined;
        body?: string | undefined;
    } & {
        id: string;
        location?: import("@meshwatch/types").Location | undefined;
    } & {
        created: Date;
    }) | import("@meshwatch/types").Boom<Partial<undefined & {
        non_field_errors?: string | undefined;
    }>>>>;
    getMonitor: (userId: string, monitorId: string) => Promise<ServiceResponse<(import("@meshwatch/types").CreateMonitorBase & {
        id: string;
        location?: import("@meshwatch/types").Location | undefined;
    } & {
        created: Date;
    }) | (import("@meshwatch/types").CreateMonitorBase & {
        apdex: number;
        regions: string[];
        headers?: import("@meshwatch/types/dist/common").Dictionary<string> | undefined;
        body?: string | undefined;
    } & {
        id: string;
        location?: import("@meshwatch/types").Location | undefined;
    } & {
        created: Date;
    }) | import("@meshwatch/types").Boom<Partial<undefined & {
        non_field_errors?: string | undefined;
    }>>>>;
    deleteMonitor: (userId: string, monitorId: string) => Promise<ServiceResponse<(import("@meshwatch/types").CreateMonitorBase & {
        id: string;
        location?: import("@meshwatch/types").Location | undefined;
    } & {
        created: Date;
    }) | (import("@meshwatch/types").CreateMonitorBase & {
        apdex: number;
        regions: string[];
        headers?: import("@meshwatch/types/dist/common").Dictionary<string> | undefined;
        body?: string | undefined;
    } & {
        id: string;
        location?: import("@meshwatch/types").Location | undefined;
    } & {
        created: Date;
    }) | import("@meshwatch/types").Boom<Partial<undefined & {
        non_field_errors?: string | undefined;
    }>>>>;
    getMonitorsByScheduler: (scheduler: string) => Promise<ServiceResponse<Monitor[] | import("@meshwatch/types").Boom<Partial<undefined & {
        non_field_errors?: string | undefined;
    }>>>>;
    getMonitors: (userId: string) => Promise<ServiceResponse<Monitor[] | import("@meshwatch/types").Boom<Partial<undefined & {
        non_field_errors?: string | undefined;
    }>>>>;
    updateMonitor: (userId: string, updateMonitorPayload: UpdateMonitorPayload) => Promise<ServiceResponse<(import("@meshwatch/types").CreateMonitorBase & {
        id: string;
        location?: import("@meshwatch/types").Location | undefined;
    } & {
        created: Date;
    }) | (import("@meshwatch/types").CreateMonitorBase & {
        apdex: number;
        regions: string[];
        headers?: import("@meshwatch/types/dist/common").Dictionary<string> | undefined;
        body?: string | undefined;
    } & {
        id: string;
        location?: import("@meshwatch/types").Location | undefined;
    } & {
        created: Date;
    }) | import("@meshwatch/types").Boom<Partial<{
        non_field_errors?: string | undefined;
    }>>>>;
    createMonitor: (userId: string, newMonitorPayload: CreateMonitorPayload) => Promise<ServiceResponse<(import("@meshwatch/types").CreateMonitorBase & {
        id: string;
        location?: import("@meshwatch/types").Location | undefined;
    } & {
        created: Date;
    }) | (import("@meshwatch/types").CreateMonitorBase & {
        apdex: number;
        regions: string[];
        headers?: import("@meshwatch/types/dist/common").Dictionary<string> | undefined;
        body?: string | undefined;
    } & {
        id: string;
        location?: import("@meshwatch/types").Location | undefined;
    } & {
        created: Date;
    }) | import("@meshwatch/types").Boom<Partial<{
        non_field_errors?: string | undefined;
    }>>>>;
}
declare const monitoringService: MonitoringService;
export default monitoringService;
