import { Repository } from 'typeorm';
import { OrganisationService } from './organisation.service';
import { ClientEntity } from 'src/entities/client.entity';
import { TokenService, TokenSessionService } from './token.service';
import { SDKListsService, SDKWalletService } from '@serene-dev/la-nest-library';
import { ClientSearchQueryDTO, SaveClientDTO, SaveClientWebhookDTO, ToggleClientSandbox } from 'src/dtos/clients.dto';
import { ClientWebhookConfigEntity } from 'src/entities/client-webhook.entity';
export declare class ClientService extends OrganisationService<ClientEntity, ClientSearchQueryDTO> {
    protected readonly repo: Repository<ClientEntity>;
    webhookRepo: Repository<ClientWebhookConfigEntity>;
    tokenService: TokenService;
    tokenSessionService: TokenSessionService;
    listService: SDKListsService;
    private readonly walletService;
    static path: string;
    constructor(repo: Repository<ClientEntity>, webhookRepo: Repository<ClientWebhookConfigEntity>, tokenService: TokenService, tokenSessionService: TokenSessionService, listService: SDKListsService, walletService: SDKWalletService);
    toggleSandbox(id: string, body: ToggleClientSandbox): Promise<import("typeorm").UpdateResult>;
    toggleTestMode(id: string, body: {
        testMode: boolean;
    }): Promise<import("typeorm").UpdateResult>;
    getByApiKey(key: string, type?: 'live' | 'test'): Promise<ClientEntity>;
    getWebhookConfig(id: string): Promise<ClientWebhookConfigEntity>;
    saveWebhookConfig(id: string, body: SaveClientWebhookDTO): Promise<ClientWebhookConfigEntity>;
    create(data: SaveClientDTO, isPublic?: boolean): Promise<ClientEntity>;
    update(id: string, data: Partial<ClientEntity>): Promise<ClientEntity>;
    private ensureWallet;
}
