import { CustomStructureProperty } from 'molstar/lib/mol-model-props/common/custom-structure-property';
import { ColorTheme } from 'molstar/lib/mol-theme/color';
import { ParamDefinition as PD } from 'molstar/lib/mol-util/param-definition';
export declare namespace SequenceColorThemeProperty {
    /** Provider name (key) for this custom property */
    const Name = "sequence-color-theme";
    /** Parameter definition for this custom property */
    type Params = ReturnType<typeof makeParams>;
    /** Create parameter definition for this custom property, using information from a color theme registry.
     * If `colorThemeRegistry` is undefined, the `theme` parameter will be typed as `any` (i.e. no UI support). */
    function makeParams(colorThemeRegistry: ColorTheme.Registry | undefined): {
        useTheme: PD.BooleanParam;
        theme: PD.Mapped<PD.NamedParams<unknown, string>> | PD.Group<PD.Normalize<{
            name: string;
            params: any;
        }>>;
        themeStrength: PD.Numeric;
        dilutionColor: PD.Color;
    };
    /** Type of parameter values for this custom property */
    type Props = PD.Values<Params>;
    /** Type of values of this custom property */
    type Data = Props;
    /** Create a provider for this custom property, using information from a color theme registry.
     * If `colorThemeRegistry` is undefined, the provider will work, but parameter definitions will not be inferred (i.e. limited UI support). */
    function makeProvider(colorThemeRegistry: ColorTheme.Registry | undefined): CustomStructureProperty.Provider<Params, Data>;
    /** Default provider for this custom property, without type information from a color theme registry (i.e. limited UI support).
     * Use `makeProvider` to get a provider with full UI support. */
    const Provider: CustomStructureProperty.Provider<{
        useTheme: PD.BooleanParam;
        theme: PD.Mapped<PD.NamedParams<unknown, string>> | PD.Group<PD.Normalize<{
            name: string;
            params: any;
        }>>;
        themeStrength: PD.Numeric;
        dilutionColor: PD.Color;
    }, PD.Values<{
        useTheme: PD.BooleanParam;
        theme: PD.Mapped<PD.NamedParams<unknown, string>> | PD.Group<PD.Normalize<{
            name: string;
            params: any;
        }>>;
        themeStrength: PD.Numeric;
        dilutionColor: PD.Color;
    }>>;
}
