import '../../../assert/js/assert.js';
import '../../../globals.js';
import TReadOnlyProperty from '../../../axon/js/TReadOnlyProperty.js';
import { Color, Path, TPaint } from '../../../scenery/js/imports.js';
import ButtonInteractionState from './ButtonInteractionState.js';
import ButtonModel from './ButtonModel.js';
import ButtonNode, { ButtonNodeOptions } from './ButtonNode.js';
import RadioButtonInteractionState from './RadioButtonInteractionState.js';
import TButtonAppearanceStrategy, { TButtonAppearanceStrategyOptions } from './TButtonAppearanceStrategy.js';
type SelfOptions = {
    radius?: number | null;
    lineWidth?: number;
    stroke?: TPaint | null;
    touchAreaDilation?: number;
    mouseAreaDilation?: number;
    touchAreaXShift?: number;
    touchAreaYShift?: number;
    mouseAreaXShift?: number;
    mouseAreaYShift?: number;
};
export type RoundButtonOptions = SelfOptions & ButtonNodeOptions;
export default class RoundButton extends ButtonNode {
    static ThreeDAppearanceStrategy: TButtonAppearanceStrategy;
    private readonly buttonNodeConstraint;
    protected constructor(buttonModel: ButtonModel, interactionStateProperty: TReadOnlyProperty<ButtonInteractionState>, providedOptions?: RoundButtonOptions);
}
/**
 * ThreeDAppearanceStrategy is a value for RoundButton options.buttonAppearanceStrategy. It makes a round button
 * look 3D-ish by using gradients that create the appearance of highlighted and shaded edges. The gradients are
 * set up to make the light source appear to be in the upper left.
 */
export declare class ThreeDAppearanceStrategy {
    readonly maxLineWidth: number;
    private readonly disposeThreeDAppearanceStrategy;
    /**
     * @param buttonBackground - the Node for the button's background, sans content
     * @param interactionStateProperty
     * @param baseColorProperty
     * @param [providedOptions]
     */
    constructor(buttonBackground: Path, interactionStateProperty: TReadOnlyProperty<ButtonInteractionState | RadioButtonInteractionState>, baseColorProperty: TReadOnlyProperty<Color>, providedOptions?: TButtonAppearanceStrategyOptions);
    dispose(): void;
}
export {};
//# sourceMappingURL=RoundButton.d.ts.map