import '../../../globals.js';
/**
 * Class that defines the shape and common functionality for a 'bucket', which is a container into which some sort of
 * model objects may be placed.  This is a model object in the Model-View-Controller paradigm, and requires a
 * counterpart in the view in order to be presented to the user.
 *
 * In general, this is intended to be a base class, and subclasses should be used to add specific functionality, such as
 * how other model objects are added to and removed from the bucket.
 *
 * One other important note: The position of the bucket in model space is based on the center of the bucket's opening.
 *
 * @author John Blanco
 * @author Jonathan Olson <jonathan.olson@colorado.edu>
 */
import Dimension2 from '../../../dot/js/Dimension2.js';
import Vector2 from '../../../dot/js/Vector2.js';
import { Shape } from '../../../kite/js/imports.js';
import PhetioObject, { PhetioObjectOptions } from '../../../tandem/js/PhetioObject.js';
import { TColor } from '../../../scenery/js/imports.js';
type SelfOptions = {
    position?: Vector2;
    size?: Dimension2;
    baseColor?: TColor;
    captionText?: string;
    captionColor?: TColor;
    invertY?: boolean;
};
export type BucketOptions = PhetioObjectOptions & SelfOptions;
declare class Bucket extends PhetioObject {
    position: Vector2;
    readonly baseColor: TColor | null;
    readonly captionText: string;
    readonly captionColor: TColor;
    readonly size: Dimension2;
    readonly holeShape: Shape;
    readonly containerShape: Shape;
    constructor(providedOptions?: BucketOptions);
}
export default Bucket;
//# sourceMappingURL=Bucket.d.ts.map