/**
 * Layout UVs of multiple objects so that they have no overlap
 *
 * @remarks
 *
 * lays out the UVs of input geometries so that they fit in a 1x1 square and do not overlap.
 *
 * @remarks
 *
 * This node can be very useful to prepare geometries to use a lightmap in their materials. A typical setup would be:
 *
 * input geometry -> sop/Face -> sop/UvUnwrap -> sop/UvLayout
 *
 *
 */
import { TypedSopNode } from './_Base';
import { CoreGroup } from '../../../core/geometry/Group';
import { NodeParamsConfig } from '../utils/params/ParamsConfig';
import { SopType } from '../../poly/registers/nodes/types/Sop';
declare class UvLayoutSopParamConfig extends NodeParamsConfig {
    /** @param expected map resolution */
    res: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.INTEGER>;
    /** @param padding between uv islands, in pixels */
    padding: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.INTEGER>;
    /** @param uv attribute to layout */
    uv: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.STRING>;
    /** @param new uv attribute that will be set or created */
    uv2: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.STRING>;
}
export declare class UvLayoutSopNode extends TypedSopNode<UvLayoutSopParamConfig> {
    paramsConfig: UvLayoutSopParamConfig;
    static type(): SopType;
    initializeNode(): void;
    private _operation;
    cook(input_contents: CoreGroup[]): void;
}
export {};
