/**
 * @license
 * Copyright 2025 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
import { ColorSpecDelegateImpl2021 } from './color_spec_2021.js';
import { ColorSpecDelegateImpl2025 } from './color_spec_2025.js';
import { ColorSpecDelegateImpl2026 } from './color_spec_2026.js';
import type { DynamicColor } from './dynamic_color.js';
import { DynamicScheme } from './dynamic_scheme.js';
/**
 * The version of the material color spec to use.
 */
export type SpecVersion = '2021' | '2025' | '2026';
/**
 * A delegate that provides the dynamic color constraints for
 * MaterialDynamicColors.
 *
 * This is used to allow for different color constraints for different spec
 * versions.
 */
export interface ColorSpecDelegate {
    primaryPaletteKeyColor(): DynamicColor;
    secondaryPaletteKeyColor(): DynamicColor;
    tertiaryPaletteKeyColor(): DynamicColor;
    neutralPaletteKeyColor(): DynamicColor;
    neutralVariantPaletteKeyColor(): DynamicColor;
    errorPaletteKeyColor(): DynamicColor;
    background(): DynamicColor;
    onBackground(): DynamicColor;
    surface(): DynamicColor;
    surfaceDim(): DynamicColor;
    surfaceBright(): DynamicColor;
    surfaceContainerLowest(): DynamicColor;
    surfaceContainerLow(): DynamicColor;
    surfaceContainer(): DynamicColor;
    surfaceContainerHigh(): DynamicColor;
    surfaceContainerHighest(): DynamicColor;
    onSurface(): DynamicColor;
    surfaceVariant(): DynamicColor;
    onSurfaceVariant(): DynamicColor;
    inverseSurface(): DynamicColor;
    inverseOnSurface(): DynamicColor;
    outline(): DynamicColor;
    outlineVariant(): DynamicColor;
    shadow(): DynamicColor;
    scrim(): DynamicColor;
    surfaceTint(): DynamicColor;
    primary(): DynamicColor;
    primaryDim(): DynamicColor | undefined;
    onPrimary(): DynamicColor;
    primaryContainer(): DynamicColor;
    onPrimaryContainer(): DynamicColor;
    inversePrimary(): DynamicColor;
    secondary(): DynamicColor;
    secondaryDim(): DynamicColor | undefined;
    onSecondary(): DynamicColor;
    secondaryContainer(): DynamicColor;
    onSecondaryContainer(): DynamicColor;
    tertiary(): DynamicColor;
    tertiaryDim(): DynamicColor | undefined;
    onTertiary(): DynamicColor;
    tertiaryContainer(): DynamicColor;
    onTertiaryContainer(): DynamicColor;
    error(): DynamicColor;
    errorDim(): DynamicColor | undefined;
    onError(): DynamicColor;
    errorContainer(): DynamicColor;
    onErrorContainer(): DynamicColor;
    primaryFixed(): DynamicColor;
    primaryFixedDim(): DynamicColor;
    onPrimaryFixed(): DynamicColor;
    onPrimaryFixedVariant(): DynamicColor;
    secondaryFixed(): DynamicColor;
    secondaryFixedDim(): DynamicColor;
    onSecondaryFixed(): DynamicColor;
    onSecondaryFixedVariant(): DynamicColor;
    tertiaryFixed(): DynamicColor;
    tertiaryFixedDim(): DynamicColor;
    onTertiaryFixed(): DynamicColor;
    onTertiaryFixedVariant(): DynamicColor;
    highestSurface: (s: DynamicScheme) => DynamicColor;
}
export declare const spec_2021: ColorSpecDelegateImpl2021;
export declare const spec_2025: ColorSpecDelegateImpl2025;
export declare const spec_2026: ColorSpecDelegateImpl2026;
/**
 * Returns the ColorSpecDelegate for the given spec version.
 */
export declare function getSpec(specVersion: SpecVersion): ColorSpecDelegate;
