import { type IAuditUser, type IUnleashConfig } from '../../types/index.js';
import type { IFeatureLink, IFeatureLinkStore } from './feature-link-store-type.js';
import type { IFeaturesReadModel } from '../feature-toggle/types/features-read-model-type.js';
import type EventService from '../events/event-service.js';
interface IFeatureLinkStoreObj {
    featureLinkStore: IFeatureLinkStore;
    featuresReadModel: IFeaturesReadModel;
}
export default class FeatureLinkService {
    private logger;
    private featureLinkStore;
    private featuresReadModel;
    private eventService;
    private flagResolver;
    constructor(stores: IFeatureLinkStoreObj, { getLogger, flagResolver, }: Pick<IUnleashConfig, 'getLogger' | 'flagResolver'>, eventService: EventService);
    getAll(): Promise<IFeatureLink[]>;
    private normalize;
    createLink(projectId: string, newLink: Omit<IFeatureLink, 'id' | 'domain'>, auditUser: IAuditUser): Promise<IFeatureLink>;
    updateLink({ projectId, linkId }: {
        projectId: string;
        linkId: string;
    }, updatedLink: Omit<IFeatureLink, 'id' | 'domain'>, auditUser: IAuditUser): Promise<IFeatureLink>;
    deleteLink({ projectId, linkId }: {
        projectId: string;
        linkId: string;
    }, auditUser: IAuditUser): Promise<void>;
}
export {};
//# sourceMappingURL=feature-link-service.d.ts.map