import type { ClaimFreeCreditRewardResponse, FreeCreditsResponse, InvitePreviewResponse, MyInviteCodeResponse } from '@playdrop/types';
type ApiResponseLike<T> = {
    status: number;
    body: T;
    headers: Headers;
};
type RequestExecutor = <T>(input: {
    method: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE';
    path: string;
    body?: unknown;
    headers?: Record<string, string>;
    signal?: AbortSignal;
}) => Promise<ApiResponseLike<T>>;
type ErrorHandler = (response: ApiResponseLike<unknown>, defaultMessage: string) => never;
export declare function buildFreeCreditsApiClientMethods(input: {
    request: RequestExecutor;
    handleApiError: ErrorHandler;
}): {
    fetchPublicFreeCredits(): Promise<FreeCreditsResponse>;
    fetchFreeCredits(): Promise<FreeCreditsResponse>;
    claimFreeCreditReward(rewardId: number): Promise<ClaimFreeCreditRewardResponse>;
    fetchInvitePreview(inviteCode: string): Promise<InvitePreviewResponse>;
    fetchMyInviteCode(): Promise<MyInviteCodeResponse>;
    submitMyInviteCode(inviteCode: string): Promise<MyInviteCodeResponse>;
};
export {};
//# sourceMappingURL=free-credits.d.ts.map