import { default as React, PropsWithChildren } from 'react';

export type IndicatorStyle = {
    className: string;
    selectClassName: string;
    iconName: string;
};
declare const STYLES: {
    AMBER: {
        className: string;
        selectClassName: string;
        iconName: string;
    };
    GREEN: {
        className: string;
        selectClassName: string;
        iconName: string;
    };
    BLUE: {
        className: string;
        selectClassName: string;
        iconName: string;
    };
};
export type Style = keyof typeof STYLES;
export type Environment = {
    style: IndicatorStyle;
    prefix: React.ReactNode;
    label: string;
    description: string;
};
export type Environments = Record<string, Environment>;
declare const DEFAULT_ENVIRONMENTS: {
    readonly staging: {
        readonly style: {
            className: string;
            selectClassName: string;
            iconName: string;
        };
        readonly prefix: import("react/jsx-runtime").JSX.Element;
        readonly label: "Staging";
        readonly description: "Make configuration changes and test your app with mock data.";
    };
    readonly production: {
        readonly style: {
            className: string;
            selectClassName: string;
            iconName: string;
        };
        readonly prefix: import("react/jsx-runtime").JSX.Element;
        readonly label: "Production";
        readonly description: "Integrate with live data and release your app for end-users.";
    };
};
export type EnvironmentIndicatorProps<T extends Environments> = PropsWithChildren<{
    environments?: T;
    value?: keyof T;
    editable?: boolean;
    onValueChange?: (newValue: keyof T) => void;
}>;
declare function EnvironmentIndicator<T extends Environments>({ editable, onValueChange, ...props }: EnvironmentIndicatorProps<T extends Environments ? T : typeof DEFAULT_ENVIRONMENTS>): import("react/jsx-runtime").JSX.Element;
declare namespace EnvironmentIndicator {
    var STYLES: {
        AMBER: {
            className: string;
            selectClassName: string;
            iconName: string;
        };
        GREEN: {
            className: string;
            selectClassName: string;
            iconName: string;
        };
        BLUE: {
            className: string;
            selectClassName: string;
            iconName: string;
        };
    };
    var DEFAULT_ENVIRONMENTS: {
        readonly staging: {
            readonly style: {
                className: string;
                selectClassName: string;
                iconName: string;
            };
            readonly prefix: import("react/jsx-runtime").JSX.Element;
            readonly label: "Staging";
            readonly description: "Make configuration changes and test your app with mock data.";
        };
        readonly production: {
            readonly style: {
                className: string;
                selectClassName: string;
                iconName: string;
            };
            readonly prefix: import("react/jsx-runtime").JSX.Element;
            readonly label: "Production";
            readonly description: "Integrate with live data and release your app for end-users.";
        };
    };
}
export { EnvironmentIndicator };
