import BaseLayer from './baselayer';
import ILayerWithTime from './ilayerwithtime';
import ITimeOptions from '../../tools/time/itimeoptions';
export type GroupLayerOptions = {
    isDefaultChecked?: boolean;
    disclaimer?: string;
    metadataUrl?: string;
    isDefaultExpanded?: boolean;
    isExclusiveGroup?: boolean;
    time?: ITimeOptions;
    timeAttribute?: string;
};
declare class GroupLayer extends BaseLayer implements ILayerWithTime {
    /**
     * This class is a used in the state of the application, which will be accessed behind a javascript proxy.
     * This means that each modification made to its properties must come from outside,
     * because they have to be made through the proxy, so that the modification can be listen.
     * Therefore, this class must not contain any method which is updating a value directly
     * For example, any method doing <this.xxx = value> is forbidden here, because the modification be known from the proxy
     */
    isExclusiveGroup: boolean;
    isExpanded: boolean;
    activeState: 'on' | 'off' | 'semi';
    timeOptions?: ITimeOptions;
    timeAttribute?: string;
    timeRestriction?: string;
    children: BaseLayer[];
    constructor(id: number, name: string, order: number, options?: GroupLayerOptions);
    clone(): GroupLayer;
    get active(): boolean;
    get inactive(): boolean;
    get semiActive(): boolean;
    get hasTimeRestriction(): boolean;
    setDefaultTimeRestriction(): void;
}
export default GroupLayer;
