import '../../../assert/js/assert.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 Enumeration from '../../../phet-core/js/Enumeration.js';
import EnumerationValue from '../../../phet-core/js/EnumerationValue.js';
import Orientation from '../../../phet-core/js/Orientation.js';
export declare const HorizontalLayoutJustificationValues: readonly ["left", "right", "center", "spaceBetween", "spaceAround", "spaceEvenly"];
export type HorizontalLayoutJustification = typeof HorizontalLayoutJustificationValues[number];
export declare const VerticalLayoutJustificationValues: readonly ["top", "bottom", "center", "spaceBetween", "spaceAround", "spaceEvenly"];
export type VerticalLayoutJustification = typeof VerticalLayoutJustificationValues[number];
type SpaceRemainingFunctionFactory = (spaceRemaining: number, lineLength: number) => ((index: number) => number);
export default class LayoutJustification extends EnumerationValue {
    static readonly START: LayoutJustification;
    static readonly END: LayoutJustification;
    static readonly CENTER: LayoutJustification;
    static readonly SPACE_BETWEEN: LayoutJustification;
    static readonly SPACE_AROUND: LayoutJustification;
    static readonly SPACE_EVENLY: LayoutJustification;
    readonly horizontal: HorizontalLayoutJustification;
    readonly vertical: VerticalLayoutJustification;
    readonly spacingFunctionFactory: SpaceRemainingFunctionFactory;
    constructor(spacingFunctionFactory: SpaceRemainingFunctionFactory, horizontal: HorizontalLayoutJustification, vertical: VerticalLayoutJustification);
    static readonly enumeration: Enumeration<LayoutJustification>;
    static getAllowedJustificationValues(orientation: Orientation): readonly string[];
    static justifyToInternal(orientation: Orientation, key: HorizontalLayoutJustification | VerticalLayoutJustification): LayoutJustification;
    static internalToJustify(orientation: Orientation, justify: LayoutJustification): HorizontalLayoutJustification | VerticalLayoutJustification;
}
export {};
//# sourceMappingURL=LayoutJustification.d.ts.map