import type { Request, Response } from 'express';
import Controller from '../controller.js';
import type { IUnleashConfig } from '../../types/index.js';
import type { IAuthRequest } from '../unleash-types.js';
import { type AddonSchema } from '../../openapi/spec/addon-schema.js';
import { type AddonsSchema } from '../../openapi/spec/addons-schema.js';
import type { AddonCreateUpdateSchema } from '../../openapi/spec/addon-create-update-schema.js';
import { type BasePaginationParameters } from '../../openapi/spec/base-pagination-parameters.js';
import { type IntegrationEventsSchema } from '../../openapi/spec/integration-events-schema.js';
import type { IUnleashServices } from '../../services/index.js';
type AddonServices = Pick<IUnleashServices, 'addonService' | 'openApiService' | 'integrationEventsService'>;
declare class AddonController extends Controller {
    private addonService;
    private openApiService;
    private integrationEventsService;
    private flagResolver;
    constructor(config: IUnleashConfig, { addonService, openApiService, integrationEventsService, }: AddonServices);
    getAddons(_req: Request, res: Response<AddonsSchema>): Promise<void>;
    getAddon(req: Request<{
        id: number;
    }, any, any, any>, res: Response<AddonSchema>): Promise<void>;
    updateAddon(req: IAuthRequest<{
        id: number;
    }, any, AddonCreateUpdateSchema, any>, res: Response<AddonSchema>): Promise<void>;
    createAddon(req: IAuthRequest<AddonCreateUpdateSchema, any, any, any>, res: Response<AddonSchema>): Promise<void>;
    deleteAddon(req: IAuthRequest<{
        id: number;
    }, any, any, any>, res: Response<void>): Promise<void>;
    getIntegrationEvents(req: IAuthRequest<{
        id: number;
    }, unknown, unknown, BasePaginationParameters>, res: Response<IntegrationEventsSchema>): Promise<void>;
}
export default AddonController;
//# sourceMappingURL=addon.d.ts.map