import { Bounds } from "./Math";
import { CollisionInformation, ColorRGB, ComponentId, EGhostMode, Float3, IAbstractBounds, LocalCoordinates, LocalRotation, Wall } from "./Types";
import { Touch } from "./Interactor";
import { _API, IDetailedHitInfo, IComponentData } from "./API";
import { Transformation } from "./Math/MathTypes";
import { Material } from "./Material";
import * as IGXC from "./IGXC";
import * as IGXM from "./IGXM";
import { Point, AttachPointType } from "./AttachPoint";
import { IRegionManager } from "./RegionManager";
import { ProcessIGXCChanges } from "./Loader";
/**  This is called the No API as all methods are
 * implemented to throw exceptions.
 */
export declare class No_API extends _API {
    RegionManager: IRegionManager;
    CreateSuperRoot(): string;
    ProcessIGXC(componentId: string, data: IGXC.Scene, igxcBasePath: string): Promise<ProcessIGXCChanges>;
    LoadUpdate(url: string, data: {}): string;
    LoadMaterials(url: string, callback?: (loaded: boolean) => void): Promise<boolean>;
    AddMaterials(matObj: Record<string, any>): Promise<boolean>;
    RemoveComponent(componentId: string): void;
    GetOrderNumber(componentId: string): string;
    SetCommercialId(componentId: string, commercialId: string): string;
    GetCommercialId(componentId: string): string;
    GetRoots(): string[];
    GetParent(componentId: string): string;
    AddChild(componentId: string, description: IGXC.Scene, redraw?: boolean): Promise<string>;
    GetChildren(componentId: string): string[];
    GetProducts(componentId: string, category: string): string[];
    GetComponent(componentId: string): any;
    GetComponentData(componentId: string): IComponentData;
    SetComponentData(componentId: string, key: string, value: any): void;
    GetBasicWorldTransformation(componentId: string, setPositionCompatibility?: boolean): Transformation;
    IsValid(componentId: string): boolean;
    SetSelectionMode(componentId: string, mode: string): void;
    GetSelectionMode(componentId: string): string;
    GetInteractor(componentId: string): {};
    UpdateInteractor(componentId: string, key: string, value: any): void;
    GetEvaluator(componentId: string): {};
    UpdateEvaluator(componentId: string, key: string, value: any): void;
    SetVisibility(componentId: string, visible: boolean): void;
    GetVisibility(componentId: string): boolean;
    Highlight(componentId: string, color: ColorRGB, noRedraw?: boolean): void;
    SetupGhost(componentId: string, mode: EGhostMode): void;
    GetGhostIds(componentId: string): ComponentId[];
    SetHash(componentId: string, hash: string): void;
    GetHash(componentId: string): string;
    SetGeometry(componentId: string, geometry: string, url: string): void;
    GetGeometry(componentId: string): string;
    SetDeformation(componentId: string, deformation: number): void;
    GetLayer(componentId: string): string;
    SetMaterial(componentId: string, description: Material): Promise<void>;
    GetMaterial(componentId: string): string;
    GetMaterialCategory(componentId: string): string;
    SetCategories(componentId: string, categories: string[]): void;
    GetCategories(componentId: string): readonly string[];
    GetBounds(componentId: string, context: "Local" | "World" | "WorldFastButNotPrecise", considerScaleForLocalContext?: boolean): Bounds;
    SetPosition(componentId: string, position: Float3): void;
    GetPosition(componentId: string): Float3;
    SetXRotation(componentId: string, degrees: number): void;
    GetXRotation(componentId: string): number;
    SetYRotation(componentId: string, degrees: number): void;
    SetZRotation(componentId: string, degrees: number): void;
    GetZRotation(componentId: string): number;
    SetScaling(componentId: string, scaling: {}): void;
    GetScaling(componentId: string): Float3;
    GetPoints(componentId: string, key?: string, foreign?: string, type?: AttachPointType): Point[];
    SetIGXCPoints(componentId: string, points: IGXC.AttachPoint[]): void;
    GetIGXCPoints(componentId: string): IGXC.AttachPoint[];
    SelectComponent(componentId: string): void;
    GetSelectedComponent(): string;
    SelectComponents2(componentIds?: string[], ignoreHandler?: boolean, shouldNotHighlight?: boolean): void;
    GetSelectedComponents2(): string[];
    ShowBehavior(componentIds: string[], position: string): void;
    protected RenderInternal(): void;
    RedrawSceneHandler(): void;
    SetupView(componentId: string): void;
    CreateRootInteractor(classId: string, parameters: {}): any;
    GetRootInteractor(): any;
    CreateInteractor(classId: string, parameters: {}): any;
    GetDistance(point: Float3, direction: Float3): number;
    GetHitComponent(touch: Touch): string;
    GetDetailedHitInfos(touch: Touch, ignoreComponents?: string[]): IDetailedHitInfo[];
    GetCollision(firstComponent: string, secondComponent?: string, geometric?: boolean, error?: number): CollisionInformation;
    GetCollisionInfo(firstComponent: string, firstTrafo: Transformation, secondComponent?: string, secondTrafo?: Transformation, geometric?: boolean, error?: number): CollisionInformation;
    InvalidateComponent(componentId: string): void;
    SetupWall(wallId: string): Wall;
    GetAbstractBounds(id: string, transformation?: Transformation, localBounds?: Bounds, ignoreComponentsWithLayerNames?: string[]): IAbstractBounds;
    GetCollisionBounds(id: string, ignoreComponentsWithLayerNames?: string[]): IAbstractBounds;
    GetActions(id: string): IGXM.ISingleAction[];
    SetupPlatform(id: string, onlyOneGhost: boolean): string;
    GetPlatformIds(componentId: string): string[];
    SetPoint(componentId: ComponentId, key: string, position: LocalCoordinates, rotation: LocalRotation): void;
    SetTransformation(componentId: string, transformation: Transformation): void;
    protected GetComponentOrThrow(componentId: string): any;
}
