import { ICommonRunWithMessageDto } from "../../../../../schema-definitions/vehicle-positions/models/interfaces/ICommonRunWithMessageDto";
import { NotPublicVehiclesRedisRepository } from "../../../../ropid-gtfs/data-access/cache/NotPublicVehiclesRedisRepository";
import { ILogger } from "@golemio/core/dist/helpers/logger";
import { ICommonMessageFilter } from "./interfaces/ICommonMessageFilter";
import { TimestampValidator } from "./TimestampValidator";
import { ISimpleConfig } from "@golemio/core/dist/helpers/configuration/ISimpleConfig";
export declare class BusMessageFilter implements ICommonMessageFilter {
    private logger;
    private timestampValidator;
    private config;
    private notPublicVehiclesRepository;
    private dppTestingBuses;
    constructor(logger: ILogger, timestampValidator: TimestampValidator, config: ISimpleConfig, notPublicVehiclesRepository: NotPublicVehiclesRedisRepository);
    /**
     * Yield messages that are valid for processing (filter out internal bus lines and testing buses)
     *   - route id is a string of length 3 or more (bus)
     *   - route id is a number in range of trolleybus lines [50, 69]
     *   - filters out scheduled vehicles missing tjr (actual_stop_timestamp_scheduled)
     *   - OR registration number is in not-public vehicles whitelist (e.g., metro replacement buses)
     *   - filters out testing buses
     *
     * Sets isNotPublic flag on messages to avoid duplicate whitelist checks in processor
     */
    yieldFilteredMessages(messages: ICommonRunWithMessageDto[], timestamp: number): AsyncGenerator<ICommonRunWithMessageDto>;
    private isTestingBus;
}
