import '../../../tandem/js/PhetioIDUtils.js';
import '../../../globals.js';
import Property from '../../../axon/js/Property.js';
import { PressListener, PressListenerOptions } from '../../../scenery/js/imports.js';
import EnabledComponent, { EnabledComponentOptions } from '../../../axon/js/EnabledComponent.js';
import TEmitter from '../../../axon/js/TEmitter.js';
type SelfOptions = {
    startCallback?: () => void;
    endCallback?: (over: boolean) => void;
    phetioState?: boolean;
    phetioReadOnly?: boolean;
    phetioFeatured?: boolean;
};
export type ButtonModelOptions = SelfOptions & EnabledComponentOptions;
export default class ButtonModel extends EnabledComponent {
    readonly overProperty: Property<boolean>;
    readonly downProperty: Property<boolean>;
    readonly focusedProperty: Property<boolean>;
    readonly looksPressedProperty: Property<boolean>;
    readonly looksOverProperty: Property<boolean>;
    readonly pdomClickingProperty: Property<boolean>;
    readonly produceSoundEmitter: TEmitter;
    interrupted: boolean;
    private listeners;
    private looksPressedMultilink;
    private looksOverMultilink;
    private readonly disposeButtonModel;
    constructor(providedOptions?: ButtonModelOptions);
    dispose(): void;
    /**
     * Creates a PressListener that will handle changes to ButtonModel when the associated button Node is pressed.
     * The client is responsible for adding this PressListener to the associated button Node.
     */
    createPressListener(options?: PressListenerOptions): PressListener;
}
export {};
//# sourceMappingURL=ButtonModel.d.ts.map