import '../../../globals.js';
import TReadOnlyProperty from '../../../axon/js/TReadOnlyProperty.js';
import Range from '../../../dot/js/Range.js';
import StrictOmit from '../../../phet-core/js/types/StrictOmit.js';
import { KeypadLayout, KeypadOptions } from '../../../scenery-phet/js/keypad/Keypad.js';
import { Font, TColor } from '../../../scenery/js/imports.js';
import { RectangularPushButtonOptions } from '../../../sun/js/buttons/RectangularPushButton.js';
import Dialog, { DialogOptions } from '../../../sun/js/Dialog.js';
type SelfOptions = {
    font?: Font;
    valueBoxWidth?: number;
    valueYMargin?: number;
    contentSpacing?: number;
    useRichTextRange?: boolean;
    keypadLayout?: KeypadLayout;
    keypadOptions?: StrictOmit<KeypadOptions, 'tandem'>;
    enterButtonOptions?: RectangularPushButtonOptions;
    keypadDefaultTextColor?: TColor;
    keypadErrorTextColor?: TColor;
};
export type KeypadDialogOptions = SelfOptions & StrictOmit<DialogOptions, 'focusOnShowNode'>;
declare class KeypadDialog extends Dialog {
    private editValue;
    private valueRange;
    private editFinishedCallback;
    private readonly keypad;
    private readonly rangeText;
    private rangeStringProperty;
    private readonly valueText;
    private readonly defaultTextColor;
    private readonly errorTextColor;
    private readonly disposeKeypadDialog;
    constructor(providedOptions?: KeypadDialogOptions);
    /**
     * Begins an edit by showing the KeypadDialog. Called when the user presses on a BallValuesPanelNumberDisplay to allow
     * the user to manipulate a Ball.
     *
     * @param editValue - the function called when a edit in-range successfully occurs.
     * @param valueRange - the Range that the user can edit the valueProperty
     * @param patternStringProperty - the template string that formats the text on the rangeText.
     * @param editFinishedCallback - callback when edit is entered or canceled.
     */
    beginEdit(editValue: (value: number) => void, valueRange: Range, patternStringProperty: TReadOnlyProperty<string>, editFinishedCallback: () => void): void;
    /**
     * Attempts to submit the current Keypad edit. If the edit is valid, the valueProperty is set and the edit is
     * finished. Otherwise, the edit is invalid, and the warnOutOfRange() method is invoked.
     *
     * This is called when the user presses the 'Enter' button.
     */
    private submitEdit;
    /**
     * Changes the text colors of the Value and the Range Text to indicate that a entered Edit is out of range.
     */
    private warnOutOfRange;
    /**
     * Convenience method to finish the KeypadDialog.
     *
     * This method is invoked when a edit is canceled or when a valid edit is entered.
     */
    private finishEdit;
    /**
     * Hides the dialog. Overridden to also call the editFinishedCallback function when edits are canceled.
     */
    hide(): void;
    dispose(): void;
}
export default KeypadDialog;
//# sourceMappingURL=KeypadDialog.d.ts.map