import { RegistryItemURL } from './url';
export declare enum RegItemEventName {
    VALIDATE = "validate",
    LOAD = "load",
    UNLOAD = "unload",
    DEPENDENT_URLS = "dependentUrls"
}
export interface RegItemUrlData {
    url?: string;
    type?: string;
    target?: string;
    urls?: RegistryItemURL[];
    baseUrl?: string;
    validate?: () => boolean | null;
    dependencies?: string[];
}
export interface ValidatableItem {
    readonly alias: string;
    test: () => boolean;
}
export interface RegItemEventOptions {
    validate?: () => boolean | null;
    load?: (() => void) | null;
    unload?: (() => void) | null;
    dependentUrls?: string[];
}
export interface RegItemUpdateData extends RegItemUrlData, RegItemEventOptions {
}
export interface RegistryItemData extends RegItemUpdateData {
    name?: string;
    version?: string | null;
}
export interface RegItemRawData {
    id: string;
    urls: string[];
    name: string;
    version: string | null;
    alias: string;
    loaded: boolean;
    error?: any;
}
