import { IMaterialFactory } from '@awayjs/renderer';
import { FillStyle, LineStyle } from './ShapeStyle';
export interface ShapeTag extends DefinitionTag {
    lineBounds: BBox;
    lineBoundsMorph?: BBox;
    fillBounds?: BBox;
    fillBoundsMorph?: BBox;
    flags: number;
    fillStyles: FillStyle[];
    lineStyles: LineStyle[];
    records: ShapeRecord[];
    recordsMorph?: ShapeRecord[];
    factory: IMaterialFactory;
}
export interface BBox {
    xMin: number;
    xMax: number;
    yMin: number;
    yMax: number;
}
export interface ShapeRecord {
    type: number;
    flags: number;
    deltaX?: number;
    deltaY?: number;
    controlDeltaX?: number;
    controlDeltaY?: number;
    anchorDeltaX?: number;
    anchorDeltaY?: number;
    moveX?: number;
    moveY?: number;
    fillStyle0?: number;
    fillStyle1?: number;
    lineStyle?: number;
    fillStyles?: FillStyle[];
    lineStyles?: LineStyle[];
    lineBits?: number;
    fillBits?: number;
}
export interface SwfTag {
    code: number;
    ns?: string;
}
export interface DefinitionTag extends SwfTag {
    id: number;
    lazyParser: () => any;
    needParse: boolean;
    lazyTaskDone?: (tag: DefinitionTag) => void;
    parsingTime?: number;
}
export declare const enum ShapeRecordFlags {
    Move = 1,
    HasFillStyle0 = 2,
    HasFillStyle1 = 4,
    HasLineStyle = 8,
    HasNewStyles = 16,
    IsStraight = 32,
    IsGeneral = 64,
    IsVertical = 128
}
//# sourceMappingURL=ShapeTag.d.ts.map