import type { FeatureToggleWithEnvironment, IFeatureOverview, IFeatureToggleClient, IFeatureToggleQuery, IFeatureStrategy, FeatureToggle } from '../../../types/model.js';
import type { IFeatureStrategiesStore } from '../types/feature-toggle-strategies-store-type.js';
import type { IFeatureProjectUserParams } from '../feature-toggle-controller.js';
interface ProjectEnvironment {
    projectName: string;
    environment: string;
}
export default class FakeFeatureStrategiesStore implements IFeatureStrategiesStore {
    environmentAndFeature: Map<string, any[]>;
    projectToEnvironment: ProjectEnvironment[];
    featureStrategies: IFeatureStrategy[];
    featureToggles: FeatureToggle[];
    createStrategyFeatureEnv(strategyConfig: Omit<IFeatureStrategy, 'id' | 'createdAt'>): Promise<IFeatureStrategy>;
    getStrategiesByContextField(contextFieldName: string): Promise<IFeatureStrategy[]>;
    createFeature(feature: any): Promise<void>;
    deleteFeatureStrategies(): Promise<void>;
    hasStrategy(id: string): Promise<boolean>;
    get(id: string): Promise<IFeatureStrategy | undefined>;
    exists(key: string): Promise<boolean>;
    delete(key: string): Promise<void>;
    deleteAll(): Promise<void>;
    updateSortOrder(id: string, sortOrder: number): Promise<void>;
    destroy(): void;
    removeAllStrategiesForFeatureEnv(feature_name: string, environment: string): Promise<void>;
    getAll(): Promise<IFeatureStrategy[]>;
    getStrategiesForFeatureEnv(project_name: string, feature_name: string, environment: string): Promise<IFeatureStrategy[]>;
    getFeatureToggleForEnvironment(featureName: string, _environment: string): Promise<FeatureToggleWithEnvironment>;
    getFeatureToggleWithEnvs(featureName: string, _userId?: number, archived?: boolean): Promise<FeatureToggleWithEnvironment>;
    getFeatureToggleWithVariantEnvs(featureName: string, userId?: number, archived?: boolean): Promise<FeatureToggleWithEnvironment>;
    getFeatures(featureQuery?: IFeatureToggleQuery, archived?: boolean): Promise<IFeatureToggleClient[]>;
    getStrategyById(id: string): Promise<IFeatureStrategy>;
    connectEnvironmentAndFeature(feature_name: string, environment: string, enabled?: boolean): Promise<void>;
    removeEnvironmentForFeature(feature_name: string, environment: string): Promise<void>;
    disconnectEnvironmentFromProject(environment: string, project: string): Promise<void>;
    updateStrategy(id: string, updates: Partial<IFeatureStrategy>): Promise<IFeatureStrategy>;
    deleteConfigurationsForProjectAndEnvironment(_projectId: String, _environment: String): Promise<void>;
    isEnvironmentEnabled(featureName: string, environment: string): Promise<boolean>;
    setProjectForStrategiesBelongingToFeature(featureName: string, newProjectId: string): Promise<void>;
    setEnvironmentEnabledStatus(_environment: string, _featureName: string, enabled: boolean): Promise<boolean>;
    getStrategiesBySegment(): Promise<IFeatureStrategy[]>;
    getFeatureOverview(_params: IFeatureProjectUserParams): Promise<IFeatureOverview[]>;
    getAllByFeatures(features: string[], environment?: string): Promise<IFeatureStrategy[]>;
    getCustomStrategiesInUseCount(): Promise<number>;
    getDefaultStickiness(_projectId: string): Promise<string>;
    insertStrategy(strategy: IFeatureStrategy): Promise<IFeatureStrategy>;
}
export {};
//# sourceMappingURL=fake-feature-strategies-store.d.ts.map