export declare enum CommonPositionType { Left = "left", Center = "center", Right = "right" } export declare const CommonPositions: { [key in CommonPositionType]: `${number}%`; }; export interface IPosition { toCSS(): D2Position; } export type Coord2DPosition = { x: number | `${"-" | ""}${number}%`; y: number | `${"-" | ""}${number}%`; } & Partial; export type AlignPosition = { xalign: number; yalign: number; } & Partial; export type OffsetPosition = { xoffset: number; yoffset: number; }; export type RawPosition = CommonPositionType | (Partial & { xalign?: never; yalign?: never; }) | (Partial & { x?: never; y?: never; }); type Unknown = typeof PositionUtils.Unknown; type UnknownAble = T | Unknown; export declare class CommonPosition implements IPosition { static Positions: typeof CommonPositionType; static isCommonPositionType(arg: any): arg is CommonPosition; readonly position: CommonPositionType; /** * Create a new CommonPosition instance * @example * ```ts * new CommonPosition(CommonPosition.Positions.Center); * new CommonPosition("center"); * ``` */ constructor(position: CommonPositionType); toCSS(): D2Position; } export declare class Coord2D implements IPosition { static isCoord2DPosition(arg: any): arg is Coord2D; static fromCommonPosition(position: CommonPosition): Coord2D; static fromAlignPosition(position: Partial): Coord2D; static merge(a: Coord2D, b: Coord2D): Coord2D; readonly x: UnknownAble; readonly y: UnknownAble; readonly xoffset: UnknownAble; readonly yoffset: UnknownAble; /** * Create a new Coord2D instance * @example * ```ts * new Coord2D("50%", "50%"); * new Coord2D({x: 1280, y: "50%"}); * new Coord2D({x: 1280, y: "-50%", xoffset: 10, yoffset: 20}); * ``` */ constructor(arg0: { x?: UnknownAble; y?: UnknownAble; xoffset?: UnknownAble; yoffset?: UnknownAble; }); constructor(x: UnknownAble, y: UnknownAble); check(): void; toCSS(): D2Position; } export declare class Align implements IPosition { static isAlignPosition(arg: any): arg is AlignPosition; readonly xalign: UnknownAble; readonly yalign: UnknownAble; readonly xoffset: UnknownAble; readonly yoffset: UnknownAble; /** * Create a new Align instance * @example * ```ts * new Align(0.5, 0.5); * new Align({xalign: 0.25, yalign: 0.5}); * new Align({xalign: 0.25, yalign: 0.5, xoffset: 10, yoffset: 20}); * ``` */ constructor(xalign?: UnknownAble, yalign?: UnknownAble); constructor(arg0: { xalign?: UnknownAble; yalign?: UnknownAble; xoffset?: UnknownAble; yoffset?: UnknownAble; }); check(): void; toCSS(): D2Position; } export {};