import { RealmLike } from '@arkade-os/sdk/repositories/realm';
import { m as SwapRepository, B as BoltzSwap, p as GetSwapsFilter } from '../../types-BKEkNZxK.js';
import '@arkade-os/sdk';

/**
 * Realm-based implementation of SwapRepository.
 *
 * `realm` is a peer dependency and not installed in this package; consumers
 * open Realm with the schemas from `./schemas.ts` and pass the instance to
 * the constructor, where it is validated against the shared `RealmLike`
 * shape exported by `@arkade-os/sdk`.
 *
 * Realm handles schema creation on open, so `ensureInit()` is a no-op.
 * The consumer owns the Realm lifecycle — `[Symbol.asyncDispose]` is a no-op.
 */
declare class RealmSwapRepository implements SwapRepository {
    private readonly realm;
    readonly version: 1;
    constructor(realm: RealmLike);
    private ensureInit;
    [Symbol.asyncDispose](): Promise<void>;
    saveSwap<T extends BoltzSwap>(swap: T): Promise<void>;
    deleteSwap(id: string): Promise<void>;
    getAllSwaps<T extends BoltzSwap>(filter?: GetSwapsFilter): Promise<T[]>;
    clear(): Promise<void>;
    private addFilterCondition;
}

/**
 * Realm object schemas for the Boltz swap repository.
 *
 * All schema names are prefixed with "Boltz" to avoid collisions with
 * other Realm schemas in the consuming application.
 *
 * Since `realm` is a peer dependency (not installed in this package),
 * schemas are defined as plain JS objects conforming to Realm's
 * ObjectSchema shape.
 */
declare const BoltzSwapSchema: {
    name: string;
    primaryKey: string;
    properties: {
        id: string;
        type: string;
        status: string;
        createdAt: string;
        data: string;
    };
};
declare const BoltzRealmSchemas: {
    name: string;
    primaryKey: string;
    properties: {
        id: string;
        type: string;
        status: string;
        createdAt: string;
        data: string;
    };
}[];

export { BoltzRealmSchemas, BoltzSwapSchema, RealmSwapRepository };
