import type { SystemInfo } from "@sap-ux/axios-extension";
import type { AbapProvider } from "./AbapProvider";
import type { FlexUISupportedSystem } from "../models";
export declare const ABAP_PACKAGE_SEARCH_MAX_RESULTS = 50;
/**
 * Client for managing all consumed requests to an ABAP system.
 */
export declare class AbapService {
    private abapProvider;
    private isCustomerBase;
    /**
     * Constructs an instance of ConfigClient.
     *
     * @param {AbapProvider} abapProvider - The ABAP Provider handling the connection with the system.
     * @param {boolean} isCustomerBase - whether layer is CUSTOMER_BASE
     */
    constructor(abapProvider: AbapProvider, isCustomerBase: boolean);
    /**
     * Function that connects provider to Abap system.
     *
     * @param {string} system - Abap system.
     * @param {string} client - Abap system client.
     * @param {string} username - username for authentication with Abap system.
     * @param {string} password - password for authentication with Abap system.
     */
    connectToSystem(system: string, client?: string, username?: string, password?: string): Promise<void>;
    /**
     * Fetches system UI5 Version from UI5RtVersionService.
     *
     * @returns {string | undefined} system UI5 version
     */
    getSystemUI5Version(): Promise<string | undefined>;
    /**
     * Determines if the ABAP environment is an ABAP Cloud environment.
     *
     * This method checks the Automatic Tenant Onboarding (ATO) settings retrieved from the ABAP provider
     * to verify if the tenant type is `Customer` and the operations type is `'C'` (Cloud).
     *
     * @returns {Promise<boolean>} A promise that resolves to `true` if the environment is ABAP Cloud, otherwise `false`.
     */
    isAbapCloud(): Promise<boolean>;
    /**
     * Fetches system information from the provider's layered repository.
     *
     * @param {string} language -  language for translations
     * @param {string} packageName - package name
     * @returns {SystemInfo} system into containing system supported adaptation project types and translations.
     */
    getSystemInfo(language?: string, packageName?: string): Promise<SystemInfo>;
    /**
     * Fetches system supports Flex UI features.
     *
     * @returns {Promise<FlexUISupportedSystem | undefined>} settings indicating support for onPremise and UI Flex capabilities.
     */
    getFlexUISupportedSystem(): Promise<FlexUISupportedSystem | undefined>;
    /**
     * Queries an ABAP system for a list of packages based on a search phrase.
     *
     * @param {string} phrase - The search phrase used to filter the packages.
     * @returns {Promise<string[]>} A promise that resolves to an array of package names, or an empty array if none found or on error.
     */
    listPackages(phrase: string): Promise<string[]>;
    /**
     * Fetches a list of transport requests for a given package and repository using a specified ABAP service provider.
     *
     * @param {string} packageName - The name of the package for which transport requests are being fetched.
     * @param {string} repository - The repository associated with the package.
     * @returns {Promise<string[]>} A promise that resolves to an array of transport request numbers.
     */
    listTransports(packageName: string, repository: string): Promise<string[]>;
}
