/**
 * Marketplace REST Controller
 *
 * Exposes marketplace operations via REST API for browsing, installing,
 * updating, and uninstalling marketplace items (skills, roles, 3D models).
 * Wraps the marketplace service to provide HTTP endpoints for registry
 * management and local item lifecycle.
 *
 * @module controllers/marketplace/marketplace.controller
 */
import type { Request, Response } from 'express';
/**
 * GET /api/marketplace - List marketplace items with optional filters.
 *
 * Accepts optional query parameters to filter and sort the registry:
 * - type: Filter by item type (skill, model, role)
 * - search: Full-text search across name, description, and tags
 * - sort: Sort order (popular, rating, newest)
 *
 * @param req - Express request with optional query params: type, search, sort
 * @param res - Express response returning { success, data: MarketplaceItemWithStatus[] }
 *
 * @example
 * ```
 * GET /api/marketplace?type=skill&search=deploy&sort=popular
 * ```
 */
export declare const handleListItems: (req: Request, res: Response, next: import("express").NextFunction) => Promise<void>;
/**
 * GET /api/marketplace/installed - List locally installed marketplace items.
 *
 * Returns all items that have been installed to the local system,
 * regardless of whether updates are available.
 *
 * @param _req - Express request (unused)
 * @param res - Express response returning { success, data: InstalledItemRecord[] }
 *
 * @example
 * ```
 * GET /api/marketplace/installed
 * ```
 */
export declare const handleListInstalled: (req: Request, res: Response, next: import("express").NextFunction) => Promise<void>;
/**
 * GET /api/marketplace/updates - List items with available updates.
 *
 * Compares locally installed item versions against the registry to
 * identify items that have newer versions available.
 *
 * @param _req - Express request (unused)
 * @param res - Express response returning { success, data: MarketplaceItemWithStatus[] }
 *
 * @example
 * ```
 * GET /api/marketplace/updates
 * ```
 */
export declare const handleListUpdates: (req: Request, res: Response, next: import("express").NextFunction) => Promise<void>;
/**
 * GET /api/marketplace/:id - Get a single marketplace item by ID.
 *
 * Returns full item detail including assets, metadata, and install status.
 * Returns 404 if the item does not exist in the registry.
 *
 * @param req - Express request with params.id
 * @param res - Express response returning { success, data: MarketplaceItemWithStatus } or 404
 *
 * @example
 * ```
 * GET /api/marketplace/skill-deploy-aws
 * ```
 */
export declare const handleGetItem: (req: Request, res: Response, next: import("express").NextFunction) => Promise<void>;
/**
 * POST /api/marketplace/refresh - Force refresh the registry cache.
 *
 * Fetches the latest registry from the remote CDN, bypassing any
 * local cache. Returns the updated item count and timestamp.
 *
 * @param _req - Express request (unused)
 * @param res - Express response returning { success, data: { itemCount, lastUpdated } }
 *
 * @example
 * ```
 * POST /api/marketplace/refresh
 * ```
 */
export declare const handleRefresh: (req: Request, res: Response, next: import("express").NextFunction) => Promise<void>;
/**
 * POST /api/marketplace/:id/install - Install a marketplace item.
 *
 * Downloads and installs the item identified by :id from the registry.
 * Returns 404 if the item does not exist. The result includes the
 * installed record with path and version information.
 *
 * @param req - Express request with params.id
 * @param res - Express response returning MarketplaceOperationResult
 *
 * @example
 * ```
 * POST /api/marketplace/skill-deploy-aws/install
 * ```
 */
export declare const handleInstall: (req: Request, res: Response, next: import("express").NextFunction) => Promise<void>;
/**
 * POST /api/marketplace/:id/uninstall - Uninstall a marketplace item.
 *
 * Removes the locally installed item identified by :id. Cleans up
 * the installation directory and removes the manifest entry.
 *
 * @param req - Express request with params.id
 * @param res - Express response returning MarketplaceOperationResult
 *
 * @example
 * ```
 * POST /api/marketplace/skill-deploy-aws/uninstall
 * ```
 */
export declare const handleUninstall: (req: Request, res: Response, next: import("express").NextFunction) => Promise<void>;
/**
 * POST /api/marketplace/:id/update - Update a marketplace item.
 *
 * Downloads and installs the latest version of the item identified by :id.
 * Returns 404 if the item does not exist in the registry.
 *
 * @param req - Express request with params.id
 * @param res - Express response returning MarketplaceOperationResult
 *
 * @example
 * ```
 * POST /api/marketplace/skill-deploy-aws/update
 * ```
 */
export declare const handleUpdate: (req: Request, res: Response, next: import("express").NextFunction) => Promise<void>;
/**
 * POST /api/marketplace/submit - Submit a skill for marketplace review.
 *
 * Accepts a JSON body with `archivePath` pointing to a local tar.gz archive.
 * Validates the archive contents, stores a copy, and creates a pending
 * submission record.
 *
 * @param req - Express request with body: { archivePath: string }
 * @param res - Express response returning submission result
 *
 * @example
 * ```
 * POST /api/marketplace/submit
 * { "archivePath": "/path/to/my-skill-1.0.0.tar.gz" }
 * ```
 */
export declare const handleSubmit: (req: Request, res: Response, next: import("express").NextFunction) => Promise<void>;
/**
 * GET /api/marketplace/submissions - List all submissions.
 *
 * Accepts an optional `status` query parameter to filter by submission status.
 *
 * @param req - Express request with optional query: status (pending|approved|rejected)
 * @param res - Express response returning { success, data: MarketplaceSubmission[] }
 *
 * @example
 * ```
 * GET /api/marketplace/submissions?status=pending
 * ```
 */
export declare const handleListSubmissions: (req: Request, res: Response, next: import("express").NextFunction) => Promise<void>;
/**
 * GET /api/marketplace/submissions/:id - Get a single submission.
 *
 * @param req - Express request with params.id
 * @param res - Express response returning { success, data: MarketplaceSubmission } or 404
 *
 * @example
 * ```
 * GET /api/marketplace/submissions/abc-123
 * ```
 */
export declare const handleGetSubmission: (req: Request, res: Response, next: import("express").NextFunction) => Promise<void>;
/**
 * POST /api/marketplace/submissions/:id/review - Approve or reject a submission.
 *
 * @param req - Express request with params.id and body: { action: 'approve'|'reject', notes?: string }
 * @param res - Express response returning operation result
 *
 * @example
 * ```
 * POST /api/marketplace/submissions/abc-123/review
 * { "action": "approve" }
 * ```
 */
export declare const handleReviewSubmission: (req: Request, res: Response, next: import("express").NextFunction) => Promise<void>;
/**
 * GET /api/marketplace/:id/readme - Get README content for a marketplace item.
 *
 * Reads the README.md (or SKILL.md) from the item's installed directory.
 * Returns 404 if the item has no README or is not installed.
 *
 * @param req - Express request with params.id
 * @param res - Express response returning { success, data: { content: string } } or 404
 *
 * @example
 * ```
 * GET /api/marketplace/skill-deploy-aws/readme
 * ```
 */
export declare const handleGetItemReadme: (req: Request, res: Response, next: import("express").NextFunction) => Promise<void>;
//# sourceMappingURL=marketplace.controller.d.ts.map