import BitId from '../../bit-id/bit-id';
import Component from '../component/consumer-component';
import { ComponentOverridesData } from './component-overrides';
export declare type ConsumerOverridesOfComponent = ComponentOverridesData & {
    extensions?: Record<string, any>;
    env?: Record<string, any>;
    propagate?: boolean;
    defaultScope?: string;
    defaultOwner?: string;
};
export declare type ConsumerOverridesConfig = {
    [key: string]: ConsumerOverridesOfComponent;
};
export declare const overridesForbiddenFields: string[];
export declare const overridesBitInternalFields: string[];
export declare const nonPackageJsonFields: string[];
export default class ConsumerOverrides {
    overrides: ConsumerOverridesConfig;
    hasChanged: boolean;
    constructor(overrides: ConsumerOverridesConfig);
    static load(overrides?: Record<string, any>): ConsumerOverrides;
    getOverrideComponentData(bitId: BitId): ConsumerOverridesOfComponent | null | undefined;
    _updateSpecificOverridesWithGeneralOverrides(generalOverrides: Record<string, any>, specificOverrides: Record<string, any>): void;
    _getAllRulesMatchedById(bitId: BitId): string[];
    _isMatchByWildcard(bitId: BitId, idWithPossibleWildcard: string): boolean;
    _isExcluded(overridesValues: Record<string, any>, bitId: BitId): any;
    static sortWildcards(a: string, b: string): number;
    updateOverridesIfChanged(component: Component, areEnvsChanged: boolean): Promise<boolean>;
    areOverridesObjectsEqual(overridesA: ConsumerOverridesOfComponent | null | undefined, overridesB: ConsumerOverridesOfComponent): boolean;
    findExactMatch(bitId: BitId): string | null | undefined;
    removeExactMatch(bitId: BitId): boolean;
    static validate(overrides: Record<string, any>): void;
}
