import { BasicInfoAtomType, EntityEidType } from './data-type';
export interface IGenerateRiverSurface {
    path: string;
    reverse?: boolean;
    autoCreateSegment?: boolean;
    useDEM?: boolean;
    offset?: Array<number>;
    waterBodyHeight?: number;
}
export interface IGenerateRiverSurfaceFromRemote {
    tifUrl: string;
    dbfUrl: string;
    prjUrl: string;
    shpUrl: string;
    shxUrl: string;
    csvUrl?: string;
    reverse?: boolean;
    autoCreateSegment?: boolean;
    useDEM?: boolean;
    offset?: Array<number>;
    waterBodyHeight?: number;
}
export interface IEid {
    eid: string | null;
}
export interface IEntity {
    object: Record<string, any>;
}
export interface IExpandRiverSurface {
    width?: number;
}
export interface IRaiseRiverSurface {
    changeHeight?: number;
    duration?: number;
}
export interface ISetWaterBodyHeight {
    waterBodyHeight: number;
}
export interface IUpdateRiverMaterial {
    reverseDirection?: boolean;
    speed?: number;
    rippleScale?: number;
}
export interface IMaterialEntity {
    materialObject: Record<string, any>;
}
export interface IReplaceRiverMaterial {
    eid: string | null;
    materialEid: string;
}
export interface ILoadRiverSectionData {
    path: string;
}
export interface IRaiseRiverSection {
    sections: Array<{
        index: string;
        destHeight: string;
        duration: string;
    }>;
}
export interface IConfigFloodPeakSegments {
    segments: Array<{
        segmentIndex: string;
        headHeight: string;
        normalHeight: string;
        duration: string;
    }>;
}
export interface ISetFloodPeakText {
    textArray: Array<string>;
}
export interface ISetFloodPeakInfoVisibility {
    bShowIndex?: boolean;
    bShowTime?: boolean;
    bShowProgress?: boolean;
    bShowSpeed?: boolean;
    bShowHeight?: boolean;
    bShowContent?: boolean;
}
export interface IPlayFloodPeak {
    speed?: number;
    bFollow?: boolean;
    bShowLabel?: boolean;
    speedUp?: number;
    mode: number;
}
export interface IJumpToFloodPeakTime {
    time: number;
}
export interface IJumpToFloodPeakSegment {
    segmentIndex: number;
}
export interface DynamicWaterSectionAtomType {
    sections: Array<string>;
    floodPeakDuration: number;
    floodPeakSpeedMultiplier: number;
}
export interface DynamicWaterMaterialAtomType {
    reverseDirection: boolean;
    useFlowWater: boolean;
    speed: number;
    scale: number;
}
export interface ChangedMaterialInfo {
    componentName: string;
    materialIndex: number;
    mIEid: string;
}
export interface MaterialAtomType {
    changedMaterialInfo: Array<ChangedMaterialInfo>;
    bReceivesDecals: boolean;
}
export interface WimSHPDynamicWaterType extends EntityEidType, Partial<BasicInfoAtomType> {
    dynamicWaterSection?: Partial<DynamicWaterSectionAtomType>;
    dynamicWaterMaterial?: Partial<DynamicWaterMaterialAtomType>;
    material?: Partial<MaterialAtomType>;
}
export interface IGenerate {
    BasicInfoAtom?: Partial<BasicInfoAtomType>;
    DynamicWaterSectionAtom?: Partial<DynamicWaterSectionAtomType>;
    DynamicWaterMaterialAtom?: Partial<DynamicWaterMaterialAtomType>;
    MaterialAtom?: Partial<MaterialAtomType>;
}
