import '../../../assert/js/assert.js';
import '../../../tandem/js/PhetioIDUtils.js';
import '../../../globals.js';
/**
 * Rich enumeration for internal layout code
 *
 * NOTE: This is orientation-agnostic for a reason, so that it's natural with GridBox, and FlowBox can switch
 * orientation
 *
 * @author Jonathan Olson <jonathan.olson@colorado.edu>
 */
import Orientation from '../../../phet-core/js/Orientation.js';
import EnumerationValue from '../../../phet-core/js/EnumerationValue.js';
import Enumeration from '../../../phet-core/js/Enumeration.js';
export declare const HorizontalLayoutAlignValues: readonly ["left", "right", "center", "origin"];
export type HorizontalLayoutAlign = typeof HorizontalLayoutAlignValues[number];
export declare const VerticalLayoutAlignValues: readonly ["top", "bottom", "center", "origin"];
export type VerticalLayoutAlign = typeof VerticalLayoutAlignValues[number];
export declare const RestrictedHorizontalLayoutAlignValues: readonly ["left", "right", "center"];
export type RestrictedHorizontalLayoutAlign = typeof RestrictedHorizontalLayoutAlignValues[number];
export declare const RestrictedVerticalLayoutAlignValues: readonly ["top", "bottom", "center"];
export type RestrictedVerticalLayoutAlign = typeof RestrictedVerticalLayoutAlignValues[number];
export default class LayoutAlign extends EnumerationValue {
    static readonly START: LayoutAlign;
    static readonly END: LayoutAlign;
    static readonly CENTER: LayoutAlign;
    static readonly ORIGIN: LayoutAlign;
    readonly horizontal: HorizontalLayoutAlign;
    readonly vertical: VerticalLayoutAlign;
    readonly padRatio: number;
    constructor(horizontal: HorizontalLayoutAlign, vertical: VerticalLayoutAlign, padRatio?: number);
    static readonly enumeration: Enumeration<LayoutAlign>;
    static getAllowedAligns(orientation: Orientation): readonly (string | null)[];
    static getAllowedRestrictedAligns(orientation: Orientation): readonly (string | null)[];
    static alignToInternal(orientation: Orientation, key: HorizontalLayoutAlign | VerticalLayoutAlign | null): LayoutAlign | null;
    static horizontalAlignToInternal(key: HorizontalLayoutAlign | null): LayoutAlign | null;
    static verticalAlignToInternal(key: VerticalLayoutAlign | null): LayoutAlign | null;
    static internalToAlign(orientation: Orientation, align: LayoutAlign | null): HorizontalLayoutAlign | VerticalLayoutAlign | null;
}
//# sourceMappingURL=LayoutAlign.d.ts.map