import { Component } from "./Component.js";
import { ConflictingPackageDescriptor } from "./ConflictingPackageDescriptor.js";
import { FileDescriptor } from "./FileDescriptor.js";
import { InstructionSet } from "./Instructions/InstructionSet.js";
import { UpdateInstructionSet } from "./Instructions/UpdateInstructionSet.js";
import { IPackageOptions } from "./IPackageOptions.js";
import { OptionalPackageDescriptor } from "./OptionalPackageDescriptor.js";
import { RequiredPackageDescriptor } from "./RequiredPackageDescriptor.js";
/**
 * Represents an extension-package.
 */
export declare class Package extends Component {
    /**
     * The identifier of the package.
     */
    private identifier;
    /**
     * The API-version of the package.
     *
     * @deprecated
     */
    private apiVersion;
    /**
     * A set of files which will be added to the package.
     */
    private additionalFiles;
    /**
     * A set of packages which are required by this package.
     */
    private requiredPackages;
    /**
     * A set of packages which cause a conflict with this package.
     */
    private conflictingPackages;
    /**
     * A set of packages which can be installed additionally.
     */
    private optionalPackages;
    /**
     * A set of instructions for installing the package.
     */
    private installSet;
    /**
     * A set of instructions to execute when updating from a specific version.
     */
    private updateSets;
    /**
     * Initializes a new instance of the {@link Package `Package`} class.
     *
     * @param options
     * The options of the package.
     */
    constructor(options: IPackageOptions);
    /**
     * Gets or sets the identifier of the package.
     */
    get Identifier(): string;
    /**
     * @inheritdoc
     */
    set Identifier(value: string);
    /**
     * Gets or sets the API-Version required by the package.
     *
     * @deprecated
     */
    get APIVersion(): string;
    /**
     * @inheritdoc
     * @deprecated
     */
    set APIVersion(value: string);
    /**
     * Gets a set of files which will be added to the package.
     */
    get AdditionalFiles(): FileDescriptor[];
    /**
     * Gets a set of packages which are required by this package.
     */
    get RequiredPackages(): RequiredPackageDescriptor[];
    /**
     * Gets a set of packages which cause a conflict with this package.
     */
    get ConflictingPackages(): ConflictingPackageDescriptor[];
    /**
     * Gets a set of packages which can be installed additionally.
     */
    get OptionalPackages(): OptionalPackageDescriptor[];
    /**
     * Gets a set of instructions for installing the package.
     */
    get InstallSet(): InstructionSet;
    /**
     * Gets a set of instructions to execute when updating from a specific version.
     */
    get UpdateSets(): UpdateInstructionSet[];
    /**
     * Looks for an object with the specified id.
     *
     * @param id
     * The id of the object to get.
     *
     * @returns
     * The object with the specified id.
     */
    GetObjectByID(id: string): any;
}
