import * as ajax from '../../../../shared/app-transport/ajax';
import { ForwardedRequest } from '../../../../shared/types/app-connector-types';
import { ApiPermission } from '../../../../shared/types/permission';
import { NetworkAdapter } from '../../../modules/network-adapter';
type ForwardedResponse = SuccessResponse | ErrorResponse;
interface SuccessResponse {
    state: 'success';
    statusCode: number;
    response: ajax.AjaxResponse;
}
interface ErrorResponse {
    state: 'error';
    statusCode: number;
    error: object | string;
}
export declare function handleRequestForward(networkAdapter: NetworkAdapter, forwardedRequest: ForwardedRequest, apiPermission: ApiPermission): Promise<ForwardedResponse>;
export declare function isValidForwardedRequest(value: unknown): value is ForwardedRequest;
/**
 * Log forwarded request infos.
 *
 * Forwarded requests are used by connectors to talk to external resources, so
 * the requests may contain user sensitive infos and credentials. The function
 * makes sure we only log insensitive infos for debugging purpose.
 */
export declare function logForwardedRequest(forwardedRequest: ForwardedRequest): void;
export {};
