import { ObjectAbstract } from '../../../common/object-abstract';
import { ResultType, ICoordinates } from '../../../common/data-type';
import { WimModelerRiverPolylineAtomType, WimModelerRiverAtomType, WimModelerRiverType, IGenerate, IAttributes } from '../../../common/interface/wim-modeler-river';
import { ObjectController } from '../../../common/object-controller';
/**
 * @public
 * @class WimModelerRiver
 * @extends ObjectController
 * @implements ObjectAbstract
 */
declare class WimModelerRiver extends ObjectController implements ObjectAbstract {
    className: string;
    private WimModelerRiverPolylineAtom;
    private WimModelerRiverAtom;
    /**
     * @constructor
     * @param {ModelerRiverType} opt (optional)
     */
    constructor(opt?: WimModelerRiverType);
    get coordinates(): ICoordinates;
    set coordinates(coordinates: ICoordinates);
    get attributes(): Array<IAttributes>;
    set attributes(attributes: Array<IAttributes>);
    get bClosed(): boolean;
    set bClosed(bClosed: boolean);
    get mergeLength(): number;
    set mergeLength(mergeLength: number);
    get riverWidth(): number;
    set riverWidth(riverWidth: number);
    get riverHeight(): number;
    set riverHeight(riverHeight: number);
    get bInverseNormal(): boolean;
    set bInverseNormal(bInverseNormal: boolean);
    get cornerRadius(): number;
    set cornerRadius(cornerRadius: number);
    get cornerSplitNum(): number;
    set cornerSplitNum(cornerSplitNum: number);
    get bUseVertexCorner(): boolean;
    set bUseVertexCorner(bUseVertexCorner: boolean);
    get bUseVertexWidth(): boolean;
    set bUseVertexWidth(bUseVertexWidth: boolean);
    get waterType(): string;
    set waterType(waterType: string);
    get waterColor(): string;
    set waterColor(waterColor: string);
    get waveHeight(): number;
    set waveHeight(waveHeight: number);
    get waterTransparency(): number;
    set waterTransparency(waterTransparency: number);
    get waterTransparentDepth(): number;
    set waterTransparentDepth(waterTransparentDepth: number);
    get rippleScale(): number;
    set rippleScale(rippleScale: number);
    get waveRotate(): number;
    set waveRotate(waveRotate: number);
    get waveSpeed(): number;
    set waveSpeed(waveSpeed: number);
    GetWaveSpeed(): Promise<ResultType>;
    SetWaveSpeed(waveSpeed: number): Promise<ResultType>;
    GetWaveRotate(): Promise<ResultType>;
    SetWaveRotate(waveRotate: number): Promise<ResultType>;
    GetRippleScale(): Promise<ResultType>;
    SetRippleScale(rippleScale: number): Promise<ResultType>;
    GetWaterTransparentDepth(): Promise<ResultType>;
    SetWaterTransparentDepth(waterTransparentDepth: number): Promise<ResultType>;
    GetWaterTransparency(): Promise<ResultType>;
    SetWaterTransparency(waterTransparency: number): Promise<ResultType>;
    GetWaveHeight(): Promise<ResultType>;
    SetWaveHeight(waveHeight: number): Promise<ResultType>;
    GetWaterColor(): Promise<ResultType>;
    SetWaterColor(waterColor: string): Promise<ResultType>;
    GetWaterType(): Promise<ResultType>;
    SetWaterType(waterType: string): Promise<ResultType>;
    GetUseVertexWidth(): Promise<ResultType>;
    SetUseVertexWidth(bUseVertexWidth: boolean): Promise<ResultType>;
    GetbUseVertexWidth(): Promise<ResultType>;
    SetbUseVertexWidth(bUseVertexWidth: boolean): Promise<ResultType>;
    GetUseVertexCorner(): Promise<ResultType>;
    SetUseVertexCorner(bUseVertexCorner: boolean): Promise<ResultType>;
    GetbUseVertexCorner(): Promise<ResultType>;
    SetbUseVertexCorner(bUseVertexCorner: boolean): Promise<ResultType>;
    GetCornerSplitNum(): Promise<ResultType>;
    SetCornerSplitNum(cornerSplitNum: number): Promise<ResultType>;
    GetCornerRadius(): Promise<ResultType>;
    SetCornerRadius(cornerRadius: number): Promise<ResultType>;
    GetInverseNormal(): Promise<ResultType>;
    SetInverseNormal(bInverseNormal: boolean): Promise<ResultType>;
    GetbInverseNormal(): Promise<ResultType>;
    SetbInverseNormal(bInverseNormal: boolean): Promise<ResultType>;
    GetRiverHeight(): Promise<ResultType>;
    SetRiverHeight(riverHeight: number): Promise<ResultType>;
    GetRiverWidth(): Promise<ResultType>;
    SetRiverWidth(riverWidth: number): Promise<ResultType>;
    GetMergeLength(): Promise<ResultType>;
    SetMergeLength(mergeLength: number): Promise<ResultType>;
    GetCoordinates(): Promise<ResultType>;
    SetCoordinates(coordinates: ICoordinates): Promise<ResultType>;
    GetAttributes(): Promise<ResultType>;
    SetAttributes(attributes: Array<IAttributes>): Promise<ResultType>;
    GetClosed(): Promise<ResultType>;
    SetClosed(bClosed: boolean): Promise<ResultType>;
    GetbClosed(): Promise<ResultType>;
    SetbClosed(bClosed: boolean): Promise<ResultType>;
    /**
     * @public
     * @function GetScheme
     * @returns {{WimModelerRiverAtom: WimModelerRiverAtomType, WimModelerRiverPolylineAtom: WimModelerRiverPolylineAtomType}}
     */
    GetScheme(): {
        WimModelerRiverAtom: WimModelerRiverAtomType;
        WimModelerRiverPolylineAtom: WimModelerRiverPolylineAtomType;
    };
    /**
     * @public
     * @function GetData
     * @returns {WimModelerRiverType}
     */
    GetData(): WimModelerRiverType;
    /**
     * @public
     * @function SetData
     * @param {WimModelerRiverType} opt
     * @returns {void}
     */
    SetData(opt: WimModelerRiverType): void;
    /**
     * @public
     * @function generateAtomData
     * @param {WimModelerRiverType} opt
     * @returns {IGenerate}
     */
    generateAtomData(opt: WimModelerRiverType): IGenerate;
    /**
     * @public
     * @function GetValidateRules
     * @returns {WimModelerRiverType}
     */
    GetValidateRules(): WimModelerRiverType;
    /**
     * @public
     * @function Validate
     * @param {WimModelerRiverType} opt
     * @returns {void}
     */
    Validate(opt: WimModelerRiverType): void;
}
export default WimModelerRiver;
