import { BillingMode, Isolation, IProvider, IApplication, IDeviceRegistrationProvider } from './';
export interface IManifest {
    id: number;
    applicationId: number;
    imports: string[];
    contextPath: string;
    version?: string;
    versioningMatrix?: VersioningMatrix;
    billingMode: BillingMode;
    isolation: Isolation;
    provider: IProvider;
    providesDeviceRegistration?: IDeviceRegistrationProvider;
    noAppSwitcher?: boolean;
    exports?: any;
    remotes?: ApplicationRemotePlugins;
    isPackage?: boolean;
    package?: 'blueprint' | 'plugin';
    source?: string | number | IApplication;
    name?: string;
    description?: string;
    requiredPlatformVersion?: string;
    author?: string;
    [key: string]: any;
}
export interface ApplicationRemotePlugins {
    [key: string]: string[];
}
/**
 * A matrix of versions indicating which versions of the application (key) are dependent on which version of a cumulocity component (API version and Web SDK version of the shell application currently supported, indicated by the value).
 * The versions of the dependent components can be indicated by a semver range.
 * ```json
 * {
 *  "1.0.0": {
 *    "sdk": ">=1016.0.0 <1017.0.0",
 *    "api": ">=1016.0.0 <1017.0.0"
 *  },
 *  "2.0.0": {
 *    "sdk": "~1017.0.0",
 *    "api": "~1017.0.0"
 *  },
 *  "3.0.0": {
 *    "sdk": ">=1018.0.0",
 *    "api": ">=1018.0.0"
 *  },
 * }
 * ```
 */
export interface VersioningMatrix {
    [version: string]: VersioningMatrixEntry;
}
export interface VersioningMatrixEntry {
    /**
     * The required version of the Web SDK. Indicated by a semver range.
     * ```json
     * ">=1016.0.0 <1017.0.0"
     * ```
     */
    sdk: string;
    /**
     * The required version of the cumulocity api. Indicated by a semver range.
     * ```json
     * ">=1016.0.0 <1017.0.0"
     * ```
     */
    api: string;
    /**
     * The required version of a cumulocity component. Indicated by a semver range.
     * ```json
     * ">=1016.0.0 <1017.0.0"
     * ```
     */
    [key: string]: string;
}
//# sourceMappingURL=IManifest.d.ts.map