import '../../../../assert/js/assert.js';
import '../../../../globals.js';
/**
 * A configurable cell containing a Node used for GridConstraint layout
 *
 * @author Jonathan Olson <jonathan.olson@colorado.edu>
 */
import Orientation from '../../../../phet-core/js/Orientation.js';
import OrientationPair from '../../../../phet-core/js/OrientationPair.js';
import { ExternalGridConfigurableOptions, GridConstraint, LayoutAlign, LayoutProxy, MarginLayoutCell, Node } from '../../imports.js';
type SelfOptions = {
    row?: number;
    column?: number;
    horizontalSpan?: number;
    verticalSpan?: number;
};
export type GridCellOptions = SelfOptions & ExternalGridConfigurableOptions;
declare const GridCell_base: {
    new (...args: import("../../../../phet-core/js/types/IntentionalAny.js").default[]): {
        _xAlign: LayoutAlign | null;
        _yAlign: LayoutAlign | null;
        _xStretch: boolean | null;
        _yStretch: boolean | null;
        _xGrow: number | null;
        _yGrow: number | null;
        mutateConfigurable(options?: import("./GridConfigurable.js").GridConfigurableOptions): void;
        setConfigToBaseDefault(): void;
        setConfigToInherit(ignoreOptions?: import("./GridConfigurable.js").GridConfigurableOptions): void;
        xAlign: "left" | "right" | "center" | "origin" | null;
        yAlign: "top" | "bottom" | "center" | "origin" | null;
        grow: number | null;
        xGrow: number | null;
        yGrow: number | null;
        stretch: boolean | null;
        xStretch: boolean | null;
        yStretch: boolean | null;
        _leftMargin: number | null;
        _rightMargin: number | null;
        _topMargin: number | null;
        _bottomMargin: number | null;
        _minContentWidth: number | null;
        _minContentHeight: number | null;
        _maxContentWidth: number | null;
        _maxContentHeight: number | null;
        readonly changedEmitter: import("../../../../axon.js").TEmitter;
        leftMargin: number | null;
        rightMargin: number | null;
        topMargin: number | null;
        bottomMargin: number | null;
        xMargin: number | null;
        yMargin: number | null;
        margin: number | null;
        minContentWidth: number | null;
        minContentHeight: number | null;
        maxContentWidth: number | null;
        maxContentHeight: number | null;
    };
} & typeof MarginLayoutCell;
export default class GridCell extends GridCell_base {
    position: OrientationPair<number>;
    size: OrientationPair<number>;
    private readonly gridConstraint;
    /**
     * (scenery-internal)
     */
    constructor(constraint: GridConstraint, node: Node, proxy: LayoutProxy | null);
    /**
     * Return the used value, with this cell's value taking precedence over the constraint's default
     * (scenery-internal)
     */
    get effectiveXAlign(): LayoutAlign;
    /**
     * Return the used value, with this cell's value taking precedence over the constraint's default
     * (scenery-internal)
     */
    get effectiveYAlign(): LayoutAlign;
    /**
     * (scenery-internal)
     */
    getEffectiveAlign(orientation: Orientation): LayoutAlign;
    /**
     * Return the used value, with this cell's value taking precedence over the constraint's default
     * (scenery-internal)
     */
    get effectiveXGrow(): number;
    /**
     * Return the used value, with this cell's value taking precedence over the constraint's default
     * (scenery-internal)
     */
    get effectiveYGrow(): number;
    /**
     * (scenery-internal)
     */
    getEffectiveGrow(orientation: Orientation): number;
    /**
     * Return the used value, with this cell's value taking precedence over the constraint's default
     * (scenery-internal)
     */
    get effectiveXStretch(): boolean;
    /**
     * Return the used value, with this cell's value taking precedence over the constraint's default
     * (scenery-internal)
     */
    get effectiveYStretch(): boolean;
    /**
     * (scenery-internal)
     */
    getEffectiveStretch(orientation: Orientation): boolean;
    protected onLayoutOptionsChange(isInitial?: boolean): void;
    private setOptions;
    /**
     * Whether this cell contains the given row/column (based on the orientation). Due to horizontalSpan/verticalSpan of the cell,
     * this could be true for multiple indices.
     * (scenery-internal)
     */
    containsIndex(orientation: Orientation, index: number): boolean;
    /**
     * Whether this cell contains the given row.
     * (scenery-internal)
     */
    containsRow(row: number): boolean;
    /**
     * Whether this cell contains the given column.
     * (scenery-internal)
     */
    containsColumn(column: number): boolean;
    /**
     * Returns the row/column indices that this cell spans (based on the orientation)
     * (scenery-internal)
     */
    getIndices(orientation: Orientation): number[];
}
export {};
//# sourceMappingURL=GridCell.d.ts.map