/**
 * @author Jackiê Macklein
 * @company Onside tecnologia/Nettz
 * @copyright Todos direitos reservados.
 * @description Cliente HTTP para APIs do Mercado Pago (OAuth, Point e pagamentos).
 */
import { MercadoPagoAccessToken, MercadoPagoClientConfig, MercadoPagoCreateDeviceCardPaymentRequest, MercadoPagoCreatePixPaymentRequest, MercadoPagoDevice, MercadoPagoDeviceMode, MercadoPagoOAuthRefreshTokenRequest, MercadoPagoOAuthTokenRequest, MercadoPagoPaymentDetail, MercadoPagoPaymentIntent, MercadoPagoPos, MercadoPagoStore } from "./types";
export interface MercadoPagoClient {
    readonly baseUrl: string;
    oauthToken(input: MercadoPagoOAuthTokenRequest): Promise<MercadoPagoAccessToken>;
    oauthRefreshToken(input: MercadoPagoOAuthRefreshTokenRequest): Promise<MercadoPagoAccessToken>;
    listDevices(accessToken: string): Promise<MercadoPagoDevice[]>;
    listStores(userId: string | number, accessToken: string): Promise<MercadoPagoStore[]>;
    listPos(accessToken: string): Promise<MercadoPagoPos[]>;
    updatePos(posId: string, externalPosId: string, accessToken: string): Promise<Record<string, unknown>>;
    createPos(params: Record<string, unknown>, accessToken: string): Promise<Record<string, unknown>>;
    createStore(userId: string | number, params: Record<string, unknown>, accessToken: string): Promise<Record<string, unknown>>;
    changeDeviceMode(accessToken: string, deviceId: string, mode: MercadoPagoDeviceMode): Promise<Record<string, unknown>>;
    createDeviceCardPayment(deviceId: string, params: MercadoPagoCreateDeviceCardPaymentRequest, accessToken: string): Promise<MercadoPagoPaymentIntent>;
    createPixPayment(userId: string | number, posId: string | number, params: MercadoPagoCreatePixPaymentRequest, accessToken: string): Promise<Record<string, unknown>>;
    getPixPayment(externalReference: string, accessToken: string, returnFirst?: boolean): Promise<Record<string, unknown>>;
    cancelDevicePayment(deviceId: string, paymentId: string, accessToken: string): Promise<Record<string, unknown>>;
    getDevicePayment(paymentId: string, accessToken: string): Promise<MercadoPagoPaymentIntent>;
    getDetailsPayment(paymentId: string | number, accessToken: string): Promise<MercadoPagoPaymentDetail>;
    refundPayment(paymentId: string | number, accessToken: string): Promise<Record<string, unknown>>;
}
export declare function createMercadoPagoClient(config?: MercadoPagoClientConfig): MercadoPagoClient;
