import { ArtifactData, AuthorData } from '../types/UcmApiTypes.js';
export declare class UcmLocalApiClient {
    private baseUrl;
    private authToken?;
    private authorId?;
    private organizationId?;
    private client;
    constructor(baseUrl: string, authToken?: string | undefined, timeout?: number, authorId?: string | undefined, organizationId?: string | undefined);
    /**
     * Get organizationId from constructor or throw error
     * For local MCP server, organizationId should be provided during initialization
     */
    getOrganizationId(): Promise<string>;
    private setupInterceptors;
    private ensureClient;
    getAuthors(): Promise<AuthorData[]>;
    getAuthor(authorId: string): Promise<AuthorData | null>;
    private buildApiPath;
    getArtifact(author?: string, repository?: string, category?: string, subcategory?: string, filename?: string, version?: string): Promise<ArtifactData>;
    getLatestArtifact(author?: string, repository?: string, category?: string, subcategory?: string, filename?: string): Promise<ArtifactData>;
    listArtifacts(author?: string, repository?: string, category?: string, subcategory?: string, offset?: number, limit?: number): Promise<{
        data: any[];
        pagination: {
            offset: number;
            limit: number;
            total: number;
        };
        _links?: any;
    }>;
    searchArtifacts(filters?: {
        repository?: string;
        category?: string;
        technology?: string;
        subcategory?: string;
        offset?: number;
        limit?: number;
    }): Promise<ArtifactData[]>;
    searchArtifactsByText(searchParams: {
        searchText?: string;
        namespace?: string;
        author?: string;
        repository?: string;
        category?: string;
        subcategory?: string;
        filename?: string;
        tags?: string;
        offset?: number;
        limit?: number;
    }): Promise<{
        data: any[];
        pagination: {
            offset: number;
            limit: number;
            total: number;
            hasMore: boolean;
        };
        _links?: any;
    }>;
    publishArtifact(author: string, repository: string, category: string, subcategory: string, data: any): Promise<ArtifactData>;
    updateArtifact(author: string, repository: string, category: string, subcategory: string, filename: string, version: string, data: any): Promise<ArtifactData>;
    deleteArtifact(author: string, repository: string, category: string, subcategory: string, filename: string, version?: string): Promise<any>;
    getArtifactVersions(author: string, repository: string, category: string, subcategory: string, filename: string): Promise<any>;
    getCategories(): Promise<string[]>;
    healthCheck(): Promise<{
        status: string;
        timestamp: string;
    }>;
    getQuickstart(): Promise<string>;
    getAuthorIndex(author: string, repository?: string): Promise<string>;
    getAuthorRecents(author: string): Promise<string>;
    /**
     * Cleanup method to properly dispose of HTTP client resources
     * This helps prevent memory leaks from accumulated AbortSignal listeners
     */
    cleanup(): void;
    /**
     * Check if the client is still available for use
     */
    isAvailable(): boolean;
    createRepository(author: string, data: {
        repositoryName: string;
        displayName?: string;
        description?: string;
    }): Promise<any>;
    getRepository(author: string, repository: string): Promise<any>;
    updateRepository(author: string, repository: string, data: {
        displayName?: string;
        description?: string;
    }): Promise<any>;
    deleteRepository(author: string, repository: string): Promise<any>;
    listRepositories(author: string, offset?: number, limit?: number): Promise<{
        data: any[];
        pagination: {
            offset: number;
            limit: number;
            total: number;
        };
        _links?: any;
    }>;
    submitFeedback(data: {
        title: string;
        body: string;
        reportType: 'issue' | 'feedback';
        tags?: string;
    }): Promise<any>;
    editArtifactMetadata(author: string, repository: string, category: string, subcategory: string, filename: string, data: {
        updateDescription?: string;
        updateNamespace?: string;
        updateFilename?: string;
        updateMimeType?: string;
        updateTechnology?: string;
        updateTags?: string;
    }): Promise<any>;
    /**
     * Generate markdown for SharePoint connections (safe, non-sensitive data only)
     */
    sharePointGenerateConnectionsMarkdown(organizationId: string, params: {
        limit?: number;
        offset?: number;
    }): Promise<any>;
    /**
     * List SharePoint connections for an organization (includes sensitive data - use with caution)
     */
    sharePointListConnections(organizationId: string, params: {
        limit?: number;
        offset?: number;
    }): Promise<any>;
    /**
     * Search SharePoint documents using Microsoft Search API
     */
    sharePointSearch(organizationId: string, connectionId: string, params: {
        query: string;
        limit?: number;
        offset?: number;
        fileType?: string;
    }): Promise<any>;
    /**
     * List folders and files in SharePoint with pagination
     */
    sharePointListFolders(organizationId: string, connectionId: string, params: {
        folderPath?: string;
        includeFiles?: boolean;
        recursive?: boolean;
        limit?: number;
        offset?: number;
    }): Promise<any>;
    /**
     * Read SharePoint file content with support for both fileUrl and legacy fileId
     */
    sharePointReadFile(organizationId: string, connectionId: string, params: {
        fileUrl?: string;
        fileId?: string;
        fileName?: string;
        extractMetadata?: boolean;
    }): Promise<any>;
}
//# sourceMappingURL=UcmApiClient.d.ts.map