import { Coordinates, Location, XYCoordinates } from '@gamepark/rules-api';
import { ListLocator } from './ListLocator';
import { MaterialContext } from './Locator';
/**
* This Locator places a list of items as a grid, with break points for the lines. Inspired by the CSS flexbox.
*/
export declare class FlexLocator
extends ListLocator
{
constructor(clone?: Partial);
/**
* The number of items per line.
*/
lineSize: number;
/**
* Function to override to provide a {@link lineSize} that depends on the context
* @param _location Location to position
* @param _context Context of the game
* @returns The number of items per line.
*/
getLineSize(_location: Location, _context: MaterialContext
): number;
getMaxCount(location: Location
, context: MaterialContext
): number | undefined;
/**
* The default gap between 2 consecutive lines
*/
lineGap?: Partial;
/**
* Function to override to provide a {@link getLineGap} that depends on the context
* @param _location Location to position
* @param _context Context of the game
* @returns The default gap between 2 consecutive lines
*/
getLineGap(_location: Location, _context: MaterialContext
): Partial;
/**
* The maximum number of lines displayed before the gap between the lines is reduced to fill in the same space.
*/
maxLines?: number;
/**
* Function to override to provide a {@link maxLines} that depends on the context
* @param _location Location to position
* @param _context Context of the game
* @returns The maximum number of lines displayed before the gap between the lines is reduced to fill in the same space.
*/
getMaxLines(_location: Location, _context: MaterialContext
): number | undefined;
/**
* The maximum gap between the first and the last line. Use {@link maxLines} if it matches a specific number of lines.
*/
maxLineGap?: Partial;
/**
* Function to override to provide a {@link maxLineGap} that depends on the context. Uses getMaxLines by default.
* @param location Location to position
* @param context Context of the game
* @returns The maximum gap between the first and the last line.
*/
getMaxLineGap(location: Location, context: MaterialContext
): Partial;
countListItems(location: Location, context: MaterialContext
): number;
protected getCurrentMaxGap(location: Location
, context: MaterialContext
): XYCoordinates;
getLocationCoordinates(location: Location
, context: MaterialContext
, index?: number | undefined): Partial;
}