import { EntityEidType, deepPartial, BasicInfoAtomType, TransformAtomType, VisibleAtomType, EntityFlagAtomType, EntityOutlinerAtomType } from '../data-type';
interface Visible2DAtomType {
    camera: {
        hideDistance: number;
    };
}
/**
 * @interface Text3DType
 * @extends EntityEidType,Partial<BasicInfoAtomType>,Partial<TransformAtomType>,Partial<VisibleAtomType>,Partial<EntityFlagAtomType>
 * @param {Partial<Text3DEntityAtomType>} text3DStyle (optional)
 * @param {deepPartial<Visible2DAtomType>} visible2D (optional)
 */
export interface Text3DType extends EntityEidType, Partial<BasicInfoAtomType>, Partial<TransformAtomType>, Partial<VisibleAtomType>, Partial<EntityFlagAtomType>, Partial<EntityOutlinerAtomType> {
    text3DStyle?: Partial<Text3DEntityAtomType>;
    visible2D?: deepPartial<Visible2DAtomType>;
}
/**
 * @interface Text3DEntityAtomType
 * @param {string} text
 * @param {string} color
 * @param {string} type
 * @param {number} outline
 * @param {boolean} portrait
 * @param {number} space
 * @param {number} bounce
 * @param {boolean} faceToCamera
 * @param {Array<Array<number>>} boundary
 * @param {'' | 'square' | 'circle' | 'triangle' | 'auto'} shape
 * @param {number} radius
 * @param {boolean} drawDebugBoundary
 */
export interface Text3DEntityAtomType {
    text: string;
    color: string;
    type: string;
    outline: number;
    portrait: boolean;
    space: number;
    bounce: number;
    faceToCamera: boolean;
    boundary: Array<Array<number>>;
    shape: '' | 'square' | 'circle' | 'triangle' | 'auto';
    radius: number;
    drawDebugBoundary: boolean;
}
/**
 * @interface IGenerate
 * @param {Partial<Text3DEntityAtomType>} Text3DEntityAtom (optional)
 * @param {Partial<BasicInfoAtomType>} BasicInfoAtom (optional)
 * @param {Partial<TransformAtomType>} TransformAtom (optional)
 * @param {Partial<VisibleAtomType>} VisibleAtom (optional)
 * @param {Partial<EntityFlagAtomType>} EntityFlagAtom (optional)
 */
export interface IGenerate {
    Text3DEntityAtom?: Partial<Text3DEntityAtomType>;
    Visible2DAtom?: deepPartial<Visible2DAtomType>;
    BasicInfoAtom?: Partial<BasicInfoAtomType>;
    TransformAtom?: Partial<TransformAtomType>;
    VisibleAtom?: Partial<VisibleAtomType>;
    EntityFlagAtom?: Partial<EntityFlagAtomType>;
    EntityOutlinerAtom?: Partial<EntityOutlinerAtomType>;
}
export {};
