import type { Request, Response } from 'express';
import Controller from '../../routes/controller.js';
import type { IUnleashConfig } from '../../types/option.js';
import type { IUnleashServices } from '../../services/index.js';
import type { IAuthRequest } from '../../routes/unleash-types.js';
import { type ContextFieldSchema } from '../../openapi/spec/context-field-schema.js';
import type { ContextFieldsSchema } from '../../openapi/spec/context-fields-schema.js';
import type { NameSchema } from '../../openapi/spec/name-schema.js';
import { type ContextFieldStrategiesSchema } from '../../openapi/spec/context-field-strategies-schema.js';
import type { UpdateContextFieldSchema } from '../../openapi/spec/update-context-field-schema.js';
import type { CreateContextFieldSchema } from '../../openapi/spec/create-context-field-schema.js';
import type { LegalValueSchema } from '../../openapi/index.js';
import { type ContextQueryParameters } from '../../openapi/spec/context-query-parameters.js';
interface ContextParam {
    contextField: string;
}
interface DeleteLegalValueParam extends ContextParam {
    legalValue: string;
}
export declare class ContextController extends Controller {
    private transactionalContextService;
    private openApiService;
    constructor(config: IUnleashConfig, { transactionalContextService, openApiService, }: Pick<IUnleashServices, 'transactionalContextService' | 'openApiService'>, mode?: 'global' | 'project');
    getContextFields(req: IAuthRequest<{
        projectId?: string;
    }, unknown, unknown, ContextQueryParameters>, res: Response<ContextFieldsSchema>): Promise<void>;
    getContextField(req: Request<ContextParam>, res: Response<ContextFieldSchema>): Promise<void>;
    createContextField(req: IAuthRequest<{
        projectId?: string;
    }, void, CreateContextFieldSchema>, res: Response<ContextFieldSchema>): Promise<void>;
    updateContextField(req: IAuthRequest<ContextParam, void, UpdateContextFieldSchema>, res: Response): Promise<void>;
    updateLegalValue(req: IAuthRequest<ContextParam, void, LegalValueSchema>, res: Response): Promise<void>;
    deleteLegalValue(req: IAuthRequest<DeleteLegalValueParam, void>, res: Response): Promise<void>;
    deleteContextField(req: IAuthRequest<ContextParam>, res: Response): Promise<void>;
    validateContextFieldName(req: Request<void, void, NameSchema>, res: Response): Promise<void>;
    getStrategiesByContextField(req: IAuthRequest<{
        contextField: string;
    }>, res: Response<ContextFieldStrategiesSchema>): Promise<void>;
}
export {};
//# sourceMappingURL=context.d.ts.map