import { PAGComposition } from './pag-composition';
import { Matrix } from './core/matrix';
import type { LayerType, Marker, Rect } from './types';
export declare class PAGLayer {
    wasmIns: any;
    isDestroyed: boolean;
    constructor(wasmIns: any);
    /**
     * Returns a globally unique id for this object.
     */
    uniqueID(): number;
    /**
     * Returns the type of layer.
     */
    layerType(): LayerType;
    /**
     * Returns the name of the layer.
     */
    layerName(): string;
    /**
     * A matrix object containing values that alter the scaling, rotation, and translation of the
     * layer. Altering it does not change the animation matrix, and it will be concatenated to current
     * animation matrix for displaying.
     */
    matrix(): Matrix;
    setMatrix(matrix: Matrix): void;
    /**
     * Resets the matrix to its default value.
     */
    resetMatrix(): void;
    /**
     * The final matrix for displaying, it is the combination of the matrix property and current
     * matrix from animation.
     */
    getTotalMatrix(): Matrix;
    /**
     * Returns the current alpha of the layer if previously set.
     */
    alpha(): number;
    /**
     * Set the alpha of the layer, which will be concatenated to the current animation opacity for
     * displaying.
     */
    setAlpha(opacity: Number): void;
    /**
     * Whether or not the layer is visible.
     */
    visible(): boolean;
    /**
     * Set the visible of the layer.
     */
    setVisible(visible: boolean): void;
    /**
     * Ranges from 0 to PAGFile.numTexts - 1 if the layer type is text, or from 0 to PAGFile.numImages
     * -1 if the layer type is image, otherwise returns -1.
     */
    editableIndex(): number;
    /**
     * Returns the parent PAGComposition of current PAGLayer.
     */
    parent(): PAGComposition;
    /**
     * Returns the markers of this layer.
     */
    markers(): import("./types").Vector<Marker>;
    /**
     * Converts the time from the PAGLayer's (local) timeline to the PAGSurface (global) timeline. The
     * time is in microseconds.
     */
    localTimeToGlobal(localTime: number): number;
    /**
     * Converts the time from the PAGSurface (global) to the PAGLayer's (local) timeline timeline. The
     * time is in microseconds.
     */
    globalToLocalTime(globalTime: number): number;
    /**
     * The duration of the layer in microseconds, indicates the length of the visible range.
     */
    duration(): number;
    /**
     * Returns the frame rate of this layer.
     */
    frameRate(): number;
    /**
     * The start time of the layer in microseconds, indicates the start position of the visible range
     * in parent composition. It could be negative value.
     */
    startTime(): number;
    /**
     * Set the start time of the layer, in microseconds.
     */
    setStartTime(time: number): void;
    /**
     * The current time of the layer in microseconds, the layer is invisible if currentTime is not in
     * the visible range (startTime <= currentTime < startTime + duration).
     */
    currentTime(): number;
    /**
     * Set the current time of the layer, in microseconds.
     */
    setCurrentTime(time: number): void;
    /**
     * Returns the current progress of play position, the value ranges from 0.0 to 1.0.
     */
    getProgress(): number;
    /**
     * Set the progress of play position, the value ranges from 0.0 to 1.0. A value of 0.0 represents
     * the frame at startTime. A value of 1.0 represents the frame at the end of duration.
     */
    setProgress(percent: number): void;
    /**
     * Set the progress of play position to the previous frame.
     */
    preFrame(): void;
    /**
     * Set the progress of play position to the next frame.
     */
    nextFrame(): void;
    /**
     * Returns a rectangle that defines the original area of the layer, which is not transformed by
     * the matrix.
     */
    getBounds(): Rect;
    /**
     * Returns trackMatte layer of this layer.
     */
    trackMatteLayer(): PAGLayer;
    /**
     * Indicate whether this layer is excluded from parent's timeline. If set to true, this layer's
     * current time will not change when parent's current time changes.
     */
    excludedFromTimeline(): boolean;
    /**
     * Set the excludedFromTimeline flag of this layer.
     */
    setExcludedFromTimeline(value: boolean): void;
    /**
     * Returns true if this layer is a PAGFile.
     */
    isPAGFile(): boolean;
    /**
     * Returns this layer as a type layer.
     */
    asTypeLayer(): import("./pag-image-layer").PAGImageLayer | PAGLayer | import("./pag-solid-layer").PAGSolidLayer | import("./pag-text-layer").PAGTextLayer;
    isDelete(): boolean;
    destroy(): void;
}
