import { CLIError, PrettyPrintableError } from '@oclif/core/lib/errors';
import { ShowpadClient } from './showpad-client';
import { components, operations } from './schemas/apps-api';
export type Apps = operations['list-apps']['responses'][200]['content']['application/json']['items'];
export type Versions = operations['list-app-versions']['responses'][200]['content']['application/json']['items'];
export type Upload = operations['get-upload-by-id']['responses'][200]['content']['application/json'];
export type UploadStatus = components['schemas']['UploadStatus'];
export type Version = components['schemas']['Version'];
export declare class RequestError extends CLIError {
    statusCode: number;
    content: string;
    path: string;
    constructor(message: string, path: string, statusCode: number, content: string, options?: {
        exit?: false | number;
    } & PrettyPrintableError);
}
/**
 * Retrieves the showpad apps associated with an client and potential filter on app key.
 *
 * @param showpadClient The Showpad client instance
 * @param appKey The app key to fetch the app ID for (optional)
 * @returns A promise that resolves to an array of `Apps` objects
 */
export declare function getAvailableApps(showpadClient: ShowpadClient, appKey?: string): Promise<Apps>;
/**
 * Retrieves the available versions of a specified Showpad app.
 *
 * @param showpadClient The Showpad client instance
 * @param appId The ID of the Showpad app
 * @returns A promise that resolves to an array of `Versions` objects
 * @throws {RequestError} If the request to the Showpad API fails
 * @throws {CLIError} If no versions are available for the specified app
 */
export declare function getAvailableVersions(showpadClient: ShowpadClient, appId: string): Promise<Versions>;
/**
 * Retrieves the details of a specific upload using its ID.
 *
 * @param showpadClient The Showpad client instance
 * @param uploadId The ID of the upload to retrieve
 * @returns A promise that resolves to an `Upload` object
 * @throws {RequestError} If the request to the Showpad API fails
 */
export declare function getUploadById(showpadClient: ShowpadClient, uploadId: string): Promise<Upload>;
/**
 * Creates a new upload.
 *
 * @param showpadClient The Showpad client instance
 * @param appId The optional ID of the app associated with the upload (default: none)
 * @returns A promise that resolves to an `Upload` object
 * @throws {RequestError} If the request to the Showpad API fails
 */
export declare function createUpload(showpadClient: ShowpadClient, appId?: string): Promise<Upload>;
