/** * Format system for handling different model formats */ export interface FormatOptions { id: string; name: string; icon?: string; description?: string; category?: string; target?: string | string[]; confidential?: boolean; show_on_start_screen?: boolean; show_in_new_list?: boolean; can_convert_to?: boolean; plugin?: string; meshes?: boolean; cubes?: boolean; armature_rig?: boolean; bone_rig?: boolean; centered_grid?: boolean; optional_box_uv?: boolean; per_texture_uv_size?: boolean; animation_mode?: boolean; box_uv?: boolean; single_texture?: boolean; single_texture_default?: boolean; per_group_texture?: boolean; model_identifier?: boolean; legacy_editable_file_name?: boolean; parent_model_id?: boolean; vertex_color_ambient_occlusion?: boolean; animated_textures?: boolean; integer_size?: boolean; splines?: boolean; texture_meshes?: boolean; billboards?: boolean; locators?: boolean; rotation_limit?: boolean; rotation_snap?: boolean; uv_rotation?: boolean; java_cube_shading_properties?: boolean; java_face_properties?: boolean; cullfaces?: boolean; select_texture_for_particles?: boolean; texture_mcmeta?: boolean; bone_binding_expression?: boolean; animation_files?: boolean; animation_grouping?: 'by_file' | 'custom' | 'disabled'; animation_controllers?: boolean; animation_loop_wrapping?: boolean; quaternion_interpolation?: boolean; per_animator_rotation_interpolation?: boolean; image_editor?: boolean; edit_mode?: boolean; paint_mode?: boolean; pose_mode?: boolean; display_mode?: boolean; texture_folder?: boolean; pbr?: boolean; block_size?: number; forward_direction?: '-z' | '+z' | '-x' | '+x'; rotate_cubes?: boolean; stretch_cubes?: boolean; box_uv_float_size?: boolean; euler_order?: string; node_name_regex?: string | ((node: any) => string); cube_size_limiter?: any; render_sides?: string; onSetup?: (project: any, newModel?: boolean) => void; onActivation?: () => void; onDeactivation?: () => void; onFormatPage?: () => void; codec?: any; format_page?: any; [key: string]: any; } export declare class ModelFormat { id: string; name: string; icon?: string; description: string; category: string; target?: string | string[]; confidential: boolean; show_on_start_screen: boolean; show_in_new_list: boolean; can_convert_to: boolean; plugin?: string; meshes: boolean; cubes: boolean; armature_rig: boolean; bone_rig: boolean; centered_grid: boolean; optional_box_uv: boolean; per_texture_uv_size: boolean; animation_mode: boolean; box_uv: boolean; single_texture: boolean; single_texture_default: boolean; per_group_texture: boolean; model_identifier: boolean; legacy_editable_file_name: boolean; parent_model_id: boolean; vertex_color_ambient_occlusion: boolean; animated_textures: boolean; integer_size: boolean; splines: boolean; texture_meshes: boolean; billboards: boolean; locators: boolean; rotation_limit: boolean; rotation_snap: boolean; uv_rotation: boolean; java_cube_shading_properties: boolean; java_face_properties: boolean; cullfaces: boolean; select_texture_for_particles: boolean; texture_mcmeta: boolean; bone_binding_expression: boolean; animation_files: boolean; animation_grouping: 'by_file' | 'custom' | 'disabled'; animation_controllers: boolean; animation_loop_wrapping: boolean; quaternion_interpolation: boolean; per_animator_rotation_interpolation: boolean; image_editor: boolean; edit_mode: boolean; paint_mode: boolean; pose_mode: boolean; display_mode: boolean; texture_folder: boolean; pbr: boolean; block_size: number; forward_direction: '-z' | '+z' | '-x' | '+x'; rotate_cubes: boolean; stretch_cubes: boolean; box_uv_float_size: boolean; euler_order: string; node_name_regex?: string | ((node: any) => string); cube_size_limiter?: any; render_sides?: string; onSetup?: (project: any, newModel?: boolean) => void; onActivation?: () => void; onDeactivation?: () => void; onFormatPage?: () => void; codec?: any; format_page?: any; constructor(options: FormatOptions); /** * Check if format supports a feature */ supports(feature: string): boolean; /** * Get format identifier */ getId(): string; /** * Get format name */ getName(): string; /** * Check if format is confidential */ isConfidential(): boolean; /** * Check if format can be converted to */ canConvertTo(): boolean; /** * Setup format for project */ setup(project: any, newModel?: boolean): void; /** * Activate format */ activate(): void; /** * Deactivate format */ deactivate(): void; } export declare const Formats: Record; /** * Get format by ID */ export declare function getFormat(id: string): ModelFormat | undefined; /** * Register a new format */ export declare function registerFormat(options: FormatOptions): ModelFormat; //# sourceMappingURL=format.d.ts.map