import { Response } from 'express';
import Controller from '../controller';
import { IUnleashConfig, IUnleashServices } from '../../types';
import { IAuthRequest } from '../unleash-types';
import { ClientFeaturesQuerySchema } from '../../openapi/spec/client-features-query-schema';
import { ClientFeatureSchema } from '../../openapi/spec/client-feature-schema';
import { ClientFeaturesSchema } from '../../openapi/spec/client-features-schema';
export default class FeatureController extends Controller {
    private readonly logger;
    private featureToggleServiceV2;
    private segmentService;
    private clientSpecService;
    private openApiService;
    private readonly cache;
    private cachedFeatures;
    constructor({ featureToggleServiceV2, segmentService, clientSpecService, openApiService, }: Pick<IUnleashServices, 'featureToggleServiceV2' | 'segmentService' | 'clientSpecService' | 'openApiService'>, config: IUnleashConfig);
    private resolveFeaturesAndSegments;
    private resolveQuery;
    private paramToArray;
    private prepQuery;
    getAll(req: IAuthRequest, res: Response<ClientFeaturesSchema>): Promise<void>;
    getFeatureToggle(req: IAuthRequest<{
        featureName: string;
    }, ClientFeaturesQuerySchema>, res: Response<ClientFeatureSchema>): Promise<void>;
}
