import { MongoCollectionClass } from '../../common/mongo-collection.js';
import { type CreateRouteDto, type Route, type UpdateRouteDto } from '@tmlmobilidade/types';
import { IndexDescription } from 'mongodb';
import { z } from 'zod';
declare class RoutesClass extends MongoCollectionClass<Route, CreateRouteDto, UpdateRouteDto> {
    private static _instance;
    protected createSchema: z.ZodSchema;
    protected updateSchema: z.ZodSchema;
    private constructor();
    static getInstance(): Promise<RoutesClass>;
    /**
     * Finds Route documents by line ID.
     *
     * @param lineId - The line ID to search for
     * @returns A promise that resolves to an array of matching documents
     */
    findByLineId(lineId: string): Promise<import("mongodb").WithId<{
        _id: string;
        created_at: number & {
            __brand: "UnixTimestamp";
        };
        created_by: string | null;
        is_locked: boolean;
        updated_at: number & {
            __brand: "UnixTimestamp";
        };
        code: string;
        name: string;
        line_id: string;
        path_type: "partial" | "base" | "variant";
        updated_by?: string | undefined;
        patterns?: {
            _id: string;
            code: string;
            headsign: string;
            line_id: string;
            route_id: string;
        }[] | undefined;
    }>[]>;
    protected getCollectionIndexes(): IndexDescription[];
    protected getCollectionName(): string;
    protected getEnvName(): string;
}
export declare const routes: RoutesClass;
export {};
