import { AppContext } from '../types.js';
declare class ComponentSpecWithHashType {
    specification?: string;
    hash: string;
    notModified: boolean;
    message?: string;
}
declare class SearchRegistryComponentsInput {
    registryId?: string;
    namespace?: string;
    query?: string;
    type?: string;
    tags?: string[];
    limit?: number;
    offset?: number;
}
declare class RegistryComponentSearchResultType {
    components: string[];
    total: number;
    offset: number;
    limit: number;
}
declare class ComponentDependencyTreeType {
    componentId: string;
    name?: string;
    namespace?: string;
    version?: string;
    circular?: boolean;
    totalCount?: number;
    dependencies?: ComponentDependencyTreeType[];
}
declare class ComponentFeedbackInput {
    componentName: string;
    componentNamespace: string;
    componentVersion?: string;
    registryName?: string;
    rating: number;
    feedbackType?: string;
    comments?: string;
    conversationID?: string;
    conversationDetailID?: string;
    reportID?: string;
    dashboardID?: string;
}
declare class ComponentFeedbackResponse {
    success: boolean;
    feedbackID?: string;
    error?: string;
}
export declare class ComponentRegistryExtendedResolver {
    private componentEngine;
    constructor();
    GetRegistryComponent(registryName: string, namespace: string, name: string, { userPayload }: AppContext, version?: string, hash?: string): Promise<ComponentSpecWithHashType>;
    SearchRegistryComponents(params: SearchRegistryComponentsInput, { userPayload }: AppContext): Promise<RegistryComponentSearchResultType>;
    ResolveComponentDependencies(registryName: string, componentId: string, { userPayload }: AppContext): Promise<ComponentDependencyTreeType | null>;
    private checkUserAccess;
    private getRegistry;
    private getRegistryByName;
    private getRegistryUri;
    private createClientForRegistry;
    private shouldCache;
    private cacheComponent;
    private mapComponentType;
    private mapSearchResult;
    SendComponentFeedback(feedback: ComponentFeedbackInput, { userPayload }: AppContext): Promise<ComponentFeedbackResponse>;
}
export {};
//# sourceMappingURL=ComponentRegistryResolver.d.ts.map