export default Group;
/**
 * The options required to create a `Group`.
 */
export type GroupOptions = {
    /**
     * List of data source
     * combined in the group.
     * At least one must be defined upon the creation of the group.
     */
    dataSources: import("ngeo/datasource/DataSource").default[];
    /**
     * A human-readable title for the group. Usually, the WMS Server title is
     * used for this property.
     */
    title: string;
};
/**
 * @private
 * @hidden
 */
declare class Group {
    /**
     * A Group data source combines multiple `ngeo.datasource.DataSource` objects.
     * Its main purpose is to provide a calculated `visibilityState` property
     * that can be used to determine if all its data source are all visible, all
     * hidden or some are hidden and other visible.
     *
     * @param {GroupOptions} options Options.
     */
    constructor(options: GroupOptions);
    /**
     * @type {import('ol/Collection').default<import('ngeo/datasource/DataSource').default>}
     * @protected
     */
    protected dataSourcesCollection_: import("ol/Collection").default<import("ngeo/datasource/DataSource").default>;
    /**
     * @type {string}
     * @private
     */
    private title_;
    destroy(): void;
    /**
     * @returns {import('ngeo/datasource/DataSource').default[]} Data sources
     */
    get dataSources(): import("ngeo/datasource/DataSource").default[];
    /**
     * @returns {import('ol/Collection').default<import('ngeo/datasource/DataSource').default>}
     *    Data sources
     */
    get dataSourcesCollection(): olCollection<import("ngeo/datasource/DataSource").default>;
    /**
     * @returns {string} Title
     */
    get title(): string;
    /**
     * @returns {string} Visibility state
     */
    get visibilityState(): string;
    /**
     * @param {import('ngeo/datasource/DataSource').default} dataSource Data source.
     * @returns {string} Visible state of a data source
     */
    getDataSourceState(dataSource: import("ngeo/datasource/DataSource").default): string;
    /**
     * @param {import('ngeo/datasource/DataSource').default} dataSource Data source to add.
     */
    addDataSource(dataSource: import("ngeo/datasource/DataSource").default): void;
    /**
     * @param {import('ngeo/datasource/DataSource').default} dataSource Data source to remove.
     */
    removeDataSource(dataSource: import("ngeo/datasource/DataSource").default): void;
    /**
     * Update visible property of all data sources depending on the current
     * visibility state:
     *
     * - state ON --> visible false
     * - state OFF --> visible true
     * - state IND. --> visible true
     *
     */
    toggleVisibilityState(): void;
}
import olCollection from 'ol/Collection';
