import { OutlinerElement } from '../geometry/outliner_element'; import { Group } from '../geometry/group'; import { Cube } from '../geometry/cube'; import { Mesh } from '../geometry/mesh'; import { Texture } from '../texturing/texture'; import { Animation } from '../animation/animation'; import { AnimationController } from '../animation/animation_controller'; import { UndoSystem } from '../undo/undo_system'; import { ModelFormat } from '../io/format'; import { EventSystem } from '../../utils/event_system'; export interface ProjectOptions { name?: string; texture_width?: number; texture_height?: number; box_uv?: boolean; format?: ModelFormat; mode?: string; tool?: string; view_mode?: string; display_uv?: string; exploded_view?: boolean; mirror_modeling_enabled?: boolean; } export interface UVViewport { zoom: number; offset: [number, number]; } export interface PreviewState { position: [number, number, number]; target: [number, number, number]; orthographic: boolean; zoom: number; angle?: number; } export declare class Project extends EventSystem { uuid: string; private _name; private _texture_width; private _texture_height; private _saved; box_uv: boolean; format?: ModelFormat; mode: string; tool: string; view_mode: string; display_uv: string; exploded_view: boolean; mirror_modeling_enabled: boolean; save_path: string; export_path: string; export_options: Record; added_models: number; selected: boolean; locked: boolean; thumbnail: string; elements: OutlinerElement[]; groups: Group[]; selected_elements: OutlinerElement[]; selected_groups: Group[]; textures: Texture[]; selected_texture: Texture | null; texture_groups: any[]; materials: Material[]; selected_material: Material | null; animations: Animation[]; animation_controllers: AnimationController[]; timeline_animators: any[]; collections: any[]; reference_images: any[]; mesh_selection: Record; spline_selection: Record; previews: Record; uv_viewport: UVViewport; display_settings: Record; undo: UndoSystem; outliner: any[]; private on_next_open?; constructor(options?: ProjectOptions); /** * Get project name */ get name(): string; /** * Set project name */ set name(value: string); /** * Get texture width */ get texture_width(): number; /** * Set texture width */ set texture_width(value: number); /** * Get texture height */ get texture_height(): number; /** * Set texture height */ set texture_height(value: number); /** * Get saved state */ get saved(): boolean; /** * Set saved state */ set saved(value: boolean); /** * Get display name (name, model identifier, or format name) */ getDisplayName(): string; /** * Get UV width for a texture (supports per-texture UV size) */ getUVWidth(texture?: Texture): number; /** * Get UV height for a texture (supports per-texture UV size) */ getUVHeight(texture?: Texture): number; /** * Check if optional box UV is available */ get optional_box_uv(): boolean; /** * Add a cube to the project */ addCube(data?: any): Cube; /** * Add a group to the project */ addGroup(data?: any): Group; /** * Add a mesh to the project */ addMesh(data?: any): Mesh; /** * Add a texture to the project */ addTexture(data?: any): Texture; /** * Add an animation to the project */ addAnimation(data?: any): Animation; /** * Add an animation controller to the project */ addAnimationController(data?: any): AnimationController; /** * Select a texture */ selectTexture(texture: Texture): void; /** * Unselect texture */ unselectTexture(): void; /** * Remove an element from the project */ removeElement(element: OutlinerElement): void; /** * Remove a group from the project */ removeGroup(group: Group): void; /** * Remove a texture from the project */ removeTexture(texture: Texture): void; /** * Select an element */ selectElement(element: OutlinerElement, multiSelect?: boolean): void; /** * Unselect an element */ unselectElement(element: OutlinerElement): void; /** * Unselect all elements */ unselectAll(): void; /** * Save editor state (camera positions, UV viewport, etc.) */ saveEditorState(): this; /** * Load editor state */ loadEditorState(): this; /** * Execute callback when project is next opened */ whenNextOpen(callback: () => void): void; /** * Execute pending callbacks */ executeNextOpenCallbacks(): void; /** * Get project data for saving */ getSaveData(): any; /** * Load project data */ loadData(data: any): this; /** * Extend project with additional data */ extend(data: any): this; } //# sourceMappingURL=project.d.ts.map