///
import { Filter, FilterType } from '../filter';
import { TrafikverketAPI } from '../trafikverketAPI';
import { EventEmitter } from 'events';
import { URL } from 'url';
import { EventSourceListner } from '../models/eventSourceListner';
import { RawResult } from '../models/response';
export declare abstract class Query extends EventEmitter {
protected queryLimit: number;
protected querySkip: number;
protected queryChangeId: string;
protected queryFilters: Filter[];
protected serverSideEvents: boolean;
protected serverSideListner: EventSourceListner;
static getSSEUrlFromResult(result?: RawResult): URL | null;
static getChangeIdFromResult(result?: RawResult): string | null;
constructor(serverSideEvents?: boolean);
protected getQueryArguments(): string;
limit(limit: number): this;
skip(skip: number): this;
changeId(changeId: string): this;
filter(filter: Filter): this;
protected stringifyFilters(): string;
protected handleSSE(result: RawResult, messageHandler: (data: any) => void): void;
protected handleChangeID(result: RawResult): void;
abstract toString(): string;
abstract request(trafikverketAPI: TrafikverketAPI): void;
}