import { Item } from "./Item";
import { ManipulationPermissions } from "./ManipulationPermissions";
import { Collection } from "../../Collection";
import { GroupItemPermissions } from "./GroupItemPermissions";
export declare class GroupItem extends Item {
    readonly items: Collection<Item>;
    static type: string;
    type: string;
    constructor(items?: Item[]);
    private _groupItemPermissions;
    get groupItemPermissions(): GroupItemPermissions;
    set groupItemPermissions(value: GroupItemPermissions);
    addItems(items: Item[], targetIndex?: number): void;
    _onContainerChanged(): void;
    addItem(item: Item, targetIndex?: number): void;
    removeItems(items: Item[]): void;
    getNestedItems(excludeGroupItems?: boolean): Item[];
    getSimplifiedObject(omitProperties?: string[] | string): Object;
    protected _copy(source: GroupItem, destination: GroupItem, generateNewIds: boolean, appropriateParentContainer: boolean): void;
    clone(generateNewIds?: boolean, appropriateParentContainer?: boolean): GroupItem;
    applyPermissionsConstrain(): void;
    applyToItems(func: (item: Item) => any): void;
    get manipulationPermissions(): ManipulationPermissions;
    set manipulationPermissions(value: ManipulationPermissions);
    get groupManipulationPermissions(): ManipulationPermissions;
    set groupManipulationPermissions(value: ManipulationPermissions);
    isChildVisible(child: Item): boolean;
    equals(other: GroupItem): any;
}
