import type { AuthenticationOptions, IAuthenticator } from '@citrineos/base';
import type { ILogObj } from 'tslog';
import { Logger } from 'tslog';
import { IncomingMessage } from 'http';
import { UnknownStationFilter } from './UnknownStationFilter.js';
import { BasicAuthenticationFilter } from './BasicAuthenticationFilter.js';
import { ConnectedStationFilter } from './ConnectedStationFilter.js';
import { NetworkProfileFilter } from './NetworkProfileFilter.js';
export declare class Authenticator implements IAuthenticator {
    protected _logger: Logger<ILogObj>;
    private _unknownStationFilter;
    private _connectedStationFilter;
    private _networkProfileFilter;
    private _basicAuthenticationFilter;
    constructor(unknownStationFilter: UnknownStationFilter, connectedStationFilter: ConnectedStationFilter, networkProfileFilter: NetworkProfileFilter, basicAuthenticationFilter: BasicAuthenticationFilter, logger?: Logger<ILogObj>);
    authenticate(request: IncomingMessage, tenantId: number, options: AuthenticationOptions): Promise<{
        identifier: string;
    }>;
    private _getClientIdFromUrl;
}
