import { WalletService } from './wallet.service';
import { UserRole } from '@prisma/client';
import { Request } from 'express';
type AuthedRequest = Request & {
    user?: {
        id: string;
        role: UserRole;
        shopId?: string | null;
    };
};
export declare class WalletController {
    private readonly wallet;
    constructor(wallet: WalletService);
    summary(req: AuthedRequest, limit?: string): Promise<{
        shopId: string;
        balance: number;
        currency: string;
        updatedAt: Date;
        recentTransactions: {
            id: string;
            createdAt: Date;
            type: import("@prisma/client").$Enums.WalletTxnType;
            amount: number;
            status: import("@prisma/client").$Enums.WalletTxnStatus;
            currency: string;
            purpose: string | null;
            referenceId: string | null;
            meta: import("@prisma/client/runtime/library").JsonValue;
        }[];
    }>;
    transactions(req: AuthedRequest, page?: string, limit?: string): Promise<{
        page: number;
        limit: number;
        total: number;
        items: {
            id: string;
            createdAt: Date;
            type: import("@prisma/client").$Enums.WalletTxnType;
            amount: number;
            status: import("@prisma/client").$Enums.WalletTxnStatus;
            currency: string;
            purpose: string | null;
            referenceId: string | null;
            meta: import("@prisma/client/runtime/library").JsonValue;
        }[];
    }>;
    topup(req: AuthedRequest, body: {
        amountInr?: number;
    }): Promise<{
        checkoutUrl: string;
        attemptId: string;
        txnid: string;
    }>;
}
export {};
