import { MongoCollectionClass } from '../../common/mongo-collection.js';
import { type Alert, type CreateAlertDto, type UpdateAlertDto } from '@tmlmobilidade/types';
import { IndexDescription } from 'mongodb';
import { z } from 'zod';
declare class AlertsClass extends MongoCollectionClass<Alert, CreateAlertDto, UpdateAlertDto> {
    private static _instance;
    protected createSchema: z.ZodSchema;
    protected updateSchema: z.ZodSchema;
    private constructor();
    static getInstance(): Promise<AlertsClass>;
    findByExternalId(external_id: string): Promise<import("mongodb").WithId<{
        _id: string;
        created_at: number & {
            __brand: "UnixTimestamp";
        };
        created_by: string | null;
        is_locked: boolean;
        updated_at: number & {
            __brand: "UnixTimestamp";
        };
        description: string;
        active_period_end_date: import("@tmlmobilidade/types").UnixTimestamp | null;
        active_period_start_date: number & {
            __brand: "UnixTimestamp";
        };
        agency_id: string;
        auto_texts: boolean;
        cause: "ACCIDENT" | "CONSTRUCTION" | "DEMONSTRATION" | "MEDICAL_EMERGENCY" | "POLICE_ACTIVITY" | "STRIKE" | "TECHNICAL_ISSUE" | "WEATHER" | "ABUSIVE_PARKING" | "DRIVER_ABSENCE" | "DRIVER_ISSUE" | "HIGH_PASSENGER_LOAD" | "NETWORK_UPDATE" | "ROAD_ISSUE" | "TRAFFIC_JAM" | "PUBLIC_DISORDER" | "VEHICLE_ISSUE";
        coordinates: [number, number] | null;
        effect: "ACCESSIBILITY_ISSUE" | "ADDITIONAL_SERVICE" | "DETOUR" | "MODIFIED_SERVICE" | "NO_SERVICE" | "REDUCED_SERVICE" | "SIGNIFICANT_DELAYS" | "STOP_MOVED" | "REALTIME_INFO_ISSUE" | "ON_BOARD_SALE_ISSUE";
        external_id: string | null;
        file_id: string | null;
        info_url: string | null;
        municipality_ids: string[];
        publish_end_date: import("@tmlmobilidade/types").UnixTimestamp | null;
        publish_start_date: import("@tmlmobilidade/types").UnixTimestamp | null;
        publish_status: "published" | "archived" | "draft";
        reference_type: "agency" | "lines" | "stops" | "rides";
        references: {
            child_ids: string[];
            parent_id: string;
        }[];
        title: string;
        user_instructions: string;
        updated_by?: string | undefined;
    }>>;
    findByMunicipalityId(municipality_id: string): Promise<import("mongodb").WithId<{
        _id: string;
        created_at: number & {
            __brand: "UnixTimestamp";
        };
        created_by: string | null;
        is_locked: boolean;
        updated_at: number & {
            __brand: "UnixTimestamp";
        };
        description: string;
        active_period_end_date: import("@tmlmobilidade/types").UnixTimestamp | null;
        active_period_start_date: number & {
            __brand: "UnixTimestamp";
        };
        agency_id: string;
        auto_texts: boolean;
        cause: "ACCIDENT" | "CONSTRUCTION" | "DEMONSTRATION" | "MEDICAL_EMERGENCY" | "POLICE_ACTIVITY" | "STRIKE" | "TECHNICAL_ISSUE" | "WEATHER" | "ABUSIVE_PARKING" | "DRIVER_ABSENCE" | "DRIVER_ISSUE" | "HIGH_PASSENGER_LOAD" | "NETWORK_UPDATE" | "ROAD_ISSUE" | "TRAFFIC_JAM" | "PUBLIC_DISORDER" | "VEHICLE_ISSUE";
        coordinates: [number, number] | null;
        effect: "ACCESSIBILITY_ISSUE" | "ADDITIONAL_SERVICE" | "DETOUR" | "MODIFIED_SERVICE" | "NO_SERVICE" | "REDUCED_SERVICE" | "SIGNIFICANT_DELAYS" | "STOP_MOVED" | "REALTIME_INFO_ISSUE" | "ON_BOARD_SALE_ISSUE";
        external_id: string | null;
        file_id: string | null;
        info_url: string | null;
        municipality_ids: string[];
        publish_end_date: import("@tmlmobilidade/types").UnixTimestamp | null;
        publish_start_date: import("@tmlmobilidade/types").UnixTimestamp | null;
        publish_status: "published" | "archived" | "draft";
        reference_type: "agency" | "lines" | "stops" | "rides";
        references: {
            child_ids: string[];
            parent_id: string;
        }[];
        title: string;
        user_instructions: string;
        updated_by?: string | undefined;
    }>[]>;
    findByTitle(title: string): Promise<import("mongodb").WithId<{
        _id: string;
        created_at: number & {
            __brand: "UnixTimestamp";
        };
        created_by: string | null;
        is_locked: boolean;
        updated_at: number & {
            __brand: "UnixTimestamp";
        };
        description: string;
        active_period_end_date: import("@tmlmobilidade/types").UnixTimestamp | null;
        active_period_start_date: number & {
            __brand: "UnixTimestamp";
        };
        agency_id: string;
        auto_texts: boolean;
        cause: "ACCIDENT" | "CONSTRUCTION" | "DEMONSTRATION" | "MEDICAL_EMERGENCY" | "POLICE_ACTIVITY" | "STRIKE" | "TECHNICAL_ISSUE" | "WEATHER" | "ABUSIVE_PARKING" | "DRIVER_ABSENCE" | "DRIVER_ISSUE" | "HIGH_PASSENGER_LOAD" | "NETWORK_UPDATE" | "ROAD_ISSUE" | "TRAFFIC_JAM" | "PUBLIC_DISORDER" | "VEHICLE_ISSUE";
        coordinates: [number, number] | null;
        effect: "ACCESSIBILITY_ISSUE" | "ADDITIONAL_SERVICE" | "DETOUR" | "MODIFIED_SERVICE" | "NO_SERVICE" | "REDUCED_SERVICE" | "SIGNIFICANT_DELAYS" | "STOP_MOVED" | "REALTIME_INFO_ISSUE" | "ON_BOARD_SALE_ISSUE";
        external_id: string | null;
        file_id: string | null;
        info_url: string | null;
        municipality_ids: string[];
        publish_end_date: import("@tmlmobilidade/types").UnixTimestamp | null;
        publish_start_date: import("@tmlmobilidade/types").UnixTimestamp | null;
        publish_status: "published" | "archived" | "draft";
        reference_type: "agency" | "lines" | "stops" | "rides";
        references: {
            child_ids: string[];
            parent_id: string;
        }[];
        title: string;
        user_instructions: string;
        updated_by?: string | undefined;
    }>>;
    protected getCollectionIndexes(): IndexDescription[];
    protected getCollectionName(): string;
    protected getEnvName(): string;
}
export declare const alerts: AlertsClass;
export {};
