import type { IUnleashConfig } from '../../types/option.js';
import type { IUnleashStores } from '../../types/stores.js';
import type { IEventSearchParams } from '../../types/stores/event-store.js';
import type { IApiUser, IUser } from '../../types/index.js';
import type EventEmitter from 'node:events';
import type { IQueryParam } from '../feature-toggle/types/feature-toggle-strategies-store-type.js';
import type { IPrivateProjectChecker } from '../private-project/privateProjectCheckerType.js';
import type { ProjectAccess } from '../private-project/privateProjectStore.js';
import type { IAccessReadModel } from '../access/access-read-model-type.js';
import type { IEventList, IBaseEvent } from '../../events/index.js';
export default class EventService {
    private logger;
    private eventStore;
    private featureTagStore;
    private accessReadModel;
    private privateProjectChecker;
    private eventBus;
    private isEnterprise;
    constructor({ eventStore, featureTagStore, }: Pick<IUnleashStores, 'eventStore' | 'featureTagStore'>, { getLogger, eventBus, isEnterprise, }: Pick<IUnleashConfig, 'getLogger' | 'eventBus' | 'isEnterprise'>, privateProjectChecker: IPrivateProjectChecker, accessReadModel: IAccessReadModel);
    getEvents(): Promise<IEventList>;
    searchEvents(search: IEventSearchParams, userId: number): Promise<IEventList>;
    onEvent(eventName: string | symbol, listener: (...args: any[]) => void): EventEmitter;
    off(eventName: string | symbol, listener: (...args: any[]) => void): EventEmitter;
    private enhanceEventsWithTags;
    isAdminToken(user: IUser | IApiUser): boolean;
    storeEvent(event: IBaseEvent): Promise<void>;
    storeEvents(events: IBaseEvent[]): Promise<void>;
    setEventCreatedByUserId(): Promise<void>;
    convertToDbParams: (params: IEventSearchParams) => IQueryParam[];
    getEventCreators(): Promise<{
        id: number;
        name: string;
    }[]>;
    getProjectFilterForNonAdmins(userId: number): Promise<IQueryParam[]>;
}
export declare const filterAccessibleProjects: (projectParam: string | undefined, projectAccess: ProjectAccess) => string | undefined;
//# sourceMappingURL=event-service.d.ts.map