import '../../../assert/js/assert.js';
import '../../../globals.js';
import TReadOnlyProperty from '../../../axon/js/TReadOnlyProperty.js';
import Dimension2 from '../../../dot/js/Dimension2.js';
import { TPaint } from '../../../scenery/js/imports.js';
import ButtonInteractionState from './ButtonInteractionState.js';
import ButtonModel from './ButtonModel.js';
import ButtonNode, { ButtonNodeOptions } from './ButtonNode.js';
import TButtonAppearanceStrategy from './TButtonAppearanceStrategy.js';
type SelfOptions = {
    size?: Dimension2 | null;
    minWidth?: number;
    minHeight?: number;
    touchAreaXDilation?: number;
    touchAreaYDilation?: number;
    mouseAreaXDilation?: number;
    mouseAreaYDilation?: number;
    touchAreaXShift?: number;
    touchAreaYShift?: number;
    mouseAreaXShift?: number;
    mouseAreaYShift?: number;
    stroke?: TPaint | null;
    lineWidth?: number;
    cornerRadius?: number;
    leftTopCornerRadius?: number | null;
    rightTopCornerRadius?: number | null;
    leftBottomCornerRadius?: number | null;
    rightBottomCornerRadius?: number | null;
};
export type RectangularButtonOptions = SelfOptions & ButtonNodeOptions;
export default class RectangularButton extends ButtonNode {
    static ThreeDAppearanceStrategy: TButtonAppearanceStrategy;
    private readonly buttonNodeConstraint;
    /**
     * @param buttonModel - Model that defines the button's behavior.
     * @param interactionStateProperty - a Property that is used to drive the visual appearance of the button
     * @param providedOptions
     */
    protected constructor(buttonModel: ButtonModel, interactionStateProperty: TReadOnlyProperty<ButtonInteractionState>, providedOptions?: RectangularButtonOptions);
}
export {};
//# sourceMappingURL=RectangularButton.d.ts.map