import type { IGroupMark as IVGrammarGroupMark } from '@visactor/vgrammar-core';
import type { ISeries } from '../series/interface';
import type { IModelOption } from '../model/interface';
import type { CoordinateType } from '../typings/coordinate';
import type { IRegion, IRegionSpec, IRegionSpecInfo } from './interface';
import type { IInteraction, ITrigger } from '../interaction/interface';
import type { IAnimate } from '../animation/interface';
import type { ILayoutType, StringOrNumber } from '../typings';
import { LayoutModel } from '../model/layout-model';
import { RegionSpecTransformer } from './region-transformer';
import type { IGroupMark, IRectMark } from '../mark/interface/mark';
export declare class Region<T extends IRegionSpec = IRegionSpec> extends LayoutModel<T> implements IRegion {
    static type: string;
    static readonly transformerConstructor: typeof RegionSpecTransformer;
    readonly transformerConstructor: any;
    readonly modelType: string;
    static specKey: string;
    specKey: string;
    type: string;
    protected _series: ISeries[];
    layoutType: ILayoutType;
    layoutZIndex: number;
    animate?: IAnimate;
    interaction: IInteraction;
    getSpecInfo: () => IRegionSpecInfo;
    getMaxWidth(): number;
    setMaxWidth(value: number): void;
    getMaxHeight(): number;
    setMaxHeight(value: number): void;
    protected _groupMark: IGroupMark;
    getGroupMark(): IGroupMark;
    protected _interactionMark: IGroupMark;
    getInteractionMark(): IGroupMark;
    getStackInverse(): boolean;
    getStackSort(): boolean;
    protected _backgroundMark?: IRectMark;
    protected _foregroundMark?: IRectMark;
    protected _trigger: ITrigger;
    constructor(spec: T, ctx: IModelOption);
    protected _getClipDefaultValue(): boolean;
    created(): void;
    private _createGroupMark;
    init(option: any): void;
    initMark(): void;
    protected _initBackgroundMarkStyle(): void;
    protected _initForegroundMarkStyle(): void;
    _compareSpec(spec: T, prevSpec: T): {
        change: boolean;
        reMake: boolean;
        reRender: boolean;
        reSize: boolean;
        reCompile: boolean;
    };
    reInit(spec?: T): void;
    addSeries(s: ISeries): void;
    removeSeries(s: ISeries): void;
    getSeries(opt?: {
        name?: string;
        userId?: StringOrNumber | StringOrNumber[];
        specIndex?: number | number[];
        id?: StringOrNumber;
        type?: string;
        coordinateType?: CoordinateType;
        dataName?: string;
    }): ISeries[];
    getSeriesInName(name: string): ISeries;
    getSeriesInUserId(userId: string): ISeries;
    getSeriesInId(id: number): ISeries;
    getSeriesInType(type: string): ISeries[];
    getSeriesInCoordinateType(coordinateType: CoordinateType): ISeries[];
    getSeriesInDataName(dataName: string): ISeries[];
    onRender(ctx: any): void;
    initSeriesDataflow(): void;
    seriesDataFilterOver: () => void;
    release(): void;
    createTrigger(): void;
    initTrigger(): void;
    initInteraction(): void;
    compileMarks(group?: string | IVGrammarGroupMark): void;
    compile(): void;
    getBoundsInRect: () => {
        x1: number;
        y1: number;
        x2: number;
        y2: number;
    };
    onLayoutEnd(ctx: any): void;
}
