/**
 * Interface for app usage instructions
 */
export interface AppUsageInstructions {
    app_name?: string;
    app_description?: string;
    main_workflows?: Array<{
        name: string;
        description: string;
        steps: string[];
        related_doctypes?: string[];
    }>;
    key_concepts?: Array<{
        name: string;
        description: string;
    }>;
}
/**
 * Interface for DocType usage instructions
 */
export interface DocTypeUsageInstructions {
    doctype: string;
    instructions: {
        description: string;
        usage_guidance: string;
        key_fields?: Array<{
            name: string;
            description: string;
        }>;
        common_workflows?: string[];
    };
}
/**
 * Get the app that a DocType belongs to
 * @param doctype The DocType name
 * @returns The app name, or null if not found
 */
export declare function getAppForDocType(doctype: string): Promise<string | null>;
/**
 * Check if an app has a usage instructions API
 * @param appName The app name
 * @returns True if the app has a usage instructions API
 */
export declare function hasUsageInstructionsAPI(appName: string): Promise<boolean>;
/**
 * Get usage instructions for an app
 * @param appName The app name
 * @returns The app usage instructions, or null if not available
 */
export declare function getAppUsageInstructions(appName: string): Promise<AppUsageInstructions | null>;
/**
 * Get usage instructions for a DocType from its app
 * @param doctype The DocType name
 * @returns The DocType usage instructions, or null if not available
 */
export declare function getDocTypeUsageInstructions(doctype: string): Promise<DocTypeUsageInstructions | null>;
/**
 * Clear all caches
 * This should be called periodically to ensure fresh data
 */
export declare function clearIntrospectionCaches(): void;
/**
 * Initialize the app introspection system
 * This should be called during server startup
 */
export declare function initializeAppIntrospection(): Promise<void>;
