import { CustomEventEmitter } from '../../custom';
import { RegistryItemData, RegItemRawData, ValidatableItem } from './interface';
import { RegistryItemURL } from './url';
declare class RegistryItem extends CustomEventEmitter implements ValidatableItem {
    private _id;
    private _name;
    private _version;
    private _urls;
    private _loaded;
    private _isResolveUpdateUrls;
    private _updateUrls;
    private _urlOptions;
    private _evtOptions;
    error: null;
    constructor(data: string | RegistryItemData);
    get id(): string;
    get name(): string | undefined;
    set name(value: string | undefined);
    get version(): string | null;
    set version(value: string | null);
    get hasVersion(): boolean;
    get alias(): string;
    get urls(): RegistryItemURL[];
    get updateUrls(): RegistryItemURL[];
    get isResolveUpdateUrls(): boolean;
    get raw(): RegItemRawData;
    get loaded(): boolean;
    get changed(): boolean;
    private _customEventHandle;
    private _createUrls;
    private _setUrls;
    private _setEventOptions;
    private _asyncImportUrls;
    getEventOption(name: string, def?: any): any;
    hasEventOption(name: string): boolean;
    setEventOption(name: string, value: any): void;
    resolveUpdateUrls(callback: (...args: any[]) => void): void;
    clearUpdateUrls(): void;
    update(data: any, isUpdate?: boolean): void;
    test(): boolean;
    load(options?: any): this;
    unload(options?: any): this;
    toString: () => string;
}
export { RegistryItem };
export default RegistryItem;
