import { Context } from 'koishi';
import { MarketItem, PartialMarketItem } from './types/index';
declare module 'koishi' {
    interface Tables {
        market_items: MarketItem;
    }
}
export declare const MARKET_ITEMS_TABLE = "market_items";
export declare class MarketDatabase {
    private ctx;
    private logs;
    private lock;
    private _itemsCache;
    get Items(): MarketItem[];
    private updateCache;
    private _initialized;
    get initialized(): boolean;
    constructor(ctx: Context);
    getNewItemId(): Promise<number>;
    getAllMarketItem(): Promise<MarketItem[]>;
    getMarketItemById(itemId: number): Promise<MarketItem | null>;
    addMarketItem(item: MarketItem): Promise<void>;
    swapMarketItem(itemId1: number, itemId2: number): Promise<void>;
    updateMarketItem(items: PartialMarketItem[]): Promise<void>;
    deleteMarketItem(itemId: number, pluginName?: string): Promise<void>;
    reduceStock(itemId: number): Promise<Boolean>;
}
