import { BaseError } from '@iotize/common/error';
import { IotizeBundleModel } from './iotize-bundle-model';
import { IotizeProfileModel } from './iotize-profile-model';
import { IotizeVariableModel } from './iotize-variable-model';
/**
 *
 */
export declare class BundleDoesNotExistError extends BaseError {
    bundleId: string;
    config: IotizeConfigModel;
    constructor(bundleId: string, config: IotizeConfigModel);
}
/**
 *
 */
export declare class VariableDoesNotExistError extends BaseError {
    variableId: string;
    config: IotizeConfigModel;
    constructor(variableId: string, config: IotizeConfigModel);
}
/**
 * Class representing an iotize studio configuration for a module
 */
export declare class IotizeConfigModel {
    /**
     * Iotize studio configuration JSON formatted
     */
    data: any;
    constructor(data: any);
    toJson(): any;
    private getAppConfig;
    /**
     * Get application name
     */
    appName(): string;
    /**
     * Get config version
     */
    version(): string;
    /**
     * Get module serial number
     */
    id(): string;
    /**
     * Set module serial number
     * @param id
     */
    setId(id: string): IotizeConfigModel;
    /**
     * Alias for this.id();
     */
    serialNumber(): string;
    /**
     * Get an array of all bundles
     */
    bundles(): IotizeBundleModel[];
    /**
     * Array of bundles available for a specific profile
     */
    bundleAvailableForProfileName(profileName: string): IotizeBundleModel[];
    /**
     * Get an array of all variables
     */
    variables(): IotizeVariableModel[];
    /**
     * Get bundle by id, if it does not exist, throw BundleDoesNotExistError
     * @throws BundleDoesNotExistError
     * @param id
     */
    bundle(id: string): IotizeBundleModel;
    hasBundle(id: string): IotizeBundleModel | false;
    /**
     * Get variable by id, if it does not exist, throw VariableDoesNotExistError
     * @throws VariableDoesNotExistError
     * @param id
     */
    variable(variableId: string): IotizeVariableModel;
    /**
     * Get an array of all profiles
     */
    profiles(): IotizeProfileModel[];
    description(): string;
    name(): string;
}
