import { ColorScheme, ContrastLevel } from '@aesthetic/types';
import { Sheet } from './Sheet';
import { ComponentSheetFactory, SheetFactory, SheetParams } from './types';
export declare class FeatureSheet<Input extends object, Output, Factory extends SheetFactory<Input> = ComponentSheetFactory<unknown, Input>> extends Sheet<Input, Output, Factory> {
    protected contrastOverrides: {
        [K in ContrastLevel]?: Factory[];
    };
    protected overrides: Factory[];
    protected schemeOverrides: {
        [K in ColorScheme]?: Factory[];
    };
    protected themeOverrides: Record<string, Factory[]>;
    addColorSchemeOverride<T = unknown>(scheme: ColorScheme, factory: ComponentSheetFactory<T, Input>): this;
    addContrastOverride<T = unknown>(contrast: ContrastLevel, factory: ComponentSheetFactory<T, Input>): this;
    addOverride<T = unknown>(factory: ComponentSheetFactory<T, Input>): this;
    addThemeOverride<T = unknown>(theme: string, factory: ComponentSheetFactory<T, Input>): this;
    compose(params: SheetParams): Factory;
}
//# sourceMappingURL=FeatureSheet.d.ts.map