import { AppObject, AppObjectEntity, AppObjectRepo, Color } from "@vived/core";
export declare enum ThemeColorType {
    primary = "primary",
    onPrimary = "onPrimary",
    primaryContainer = "primaryContainer",
    onPrimaryContainer = "onPrimaryContainer",
    primaryFixed = "primaryFixed",
    onPrimaryFixed = "onPrimaryFixed",
    primaryFixedDim = "primaryFixedDim",
    onPrimaryFixedVariant = "onPrimaryFixedVariant",
    secondary = "secondary",
    onSecondary = "onSecondary",
    secondaryContainer = "secondaryContainer",
    onSecondaryContainer = "onSecondaryContainer",
    secondaryFixed = "secondaryFixed",
    onSecondaryFixed = "onSecondaryFixed",
    secondaryFixedDim = "secondaryFixedDim",
    onSecondaryFixedVariant = "onSecondaryFixedVariant",
    tertiary = "tertiary",
    onTertiary = "onTertiary",
    tertiaryContainer = "tertiaryContainer",
    onTertiaryContainer = "onTertiaryContainer",
    tertiaryFixed = "tertiaryFixed",
    onTertiaryFixed = "onTertiaryFixed",
    tertiaryFixedDim = "tertiaryFixedDim",
    onTertiaryFixedVariant = "onTertiaryFixedVariant",
    error = "error",
    onError = "onError",
    errorContainer = "errorContainer",
    onErrorContainer = "onErrorContainer",
    outline = "outline",
    background = "background",
    onBackground = "onBackground",
    surface = "surface",
    onSurface = "onSurface",
    surfaceVariant = "surfaceVariant",
    onSurfaceVariant = "onSurfaceVariant",
    inverseSurface = "inverseSurface",
    inverseOnSurface = "inverseOnSurface",
    inversePrimary = "inversePrimary",
    shadow = "shadow",
    surfaceTint = "surfaceTint",
    outlineVariant = "outlineVariant",
    scrim = "scrim",
    surfaceContainerHighest = "surfaceContainerHighest",
    surfaceContainerHigh = "surfaceContainerHigh",
    surfaceContainer = "surfaceContainer",
    surfaceContainerLow = "surfaceContainerLow",
    surfaceContainerLowest = "surfaceContainerLowest",
    surfaceBright = "surfaceBright",
    surfaceDim = "surfaceDim"
}
export declare abstract class ThemeColors extends AppObjectEntity {
    static readonly type = "ThemeColors";
    abstract getColorForType(type: ThemeColorType): Color;
    abstract setColorForType(type: ThemeColorType, val: Color): void;
    abstract setColorHexForType(type: ThemeColorType, hex: string): void;
    abstract setColorHexForSet(colorSet: Map<ThemeColorType, string>): void;
    static get: (appObjects: AppObjectRepo) => ThemeColors | undefined;
}
export declare function makeThemeColors(appObject: AppObject): ThemeColorsImp;
declare class ThemeColorsImp extends ThemeColors {
    private memoizedColorLookup;
    constructor(appObject: AppObject);
    getColorForType: (type: ThemeColorType) => Color;
    setColorForType: (type: ThemeColorType, val: Color) => void;
    setColorHexForType: (type: ThemeColorType, hex: string) => void;
    setColorHexForSet(colorSet: Map<ThemeColorType, string>): void;
}
export {};
//# sourceMappingURL=ThemeColors.d.ts.map