import type { QueryBuilder } from '../../types';
export interface Commodity {
    readonly id: string;
    readonly symbol: string;
    readonly name: string;
    readonly type: 'commodity';
    readonly category: 'metals' | 'energy' | 'agriculture' | 'livestock';
    readonly unit: string;
    readonly exchange: string;
    readonly isActive: boolean;
    readonly description?: string;
}
export interface PreciousMetal extends Commodity {
    readonly category: 'metals';
    readonly subCategory: 'precious' | 'industrial';
    readonly purity?: string;
    readonly weight?: string;
}
export interface Energy extends Commodity {
    readonly category: 'energy';
    readonly subCategory: 'oil' | 'gas' | 'renewable';
    readonly region?: string;
}
export interface Agriculture extends Commodity {
    readonly category: 'agriculture';
    readonly subCategory: 'grains' | 'soft' | 'livestock';
    readonly season?: string;
    readonly origin?: string;
}
export declare class CommoditiesModule {
    private commodityData;
    private metalsData;
    private energyData;
    private agricultureData;
    constructor();
    commodity(): QueryBuilder<Commodity>;
    commodities(): QueryBuilder<Commodity>;
    metal(): QueryBuilder<PreciousMetal>;
    metals(): QueryBuilder<PreciousMetal>;
    energy(): QueryBuilder<Energy>;
    energies(): QueryBuilder<Energy>;
    agriculture(): QueryBuilder<Agriculture>;
    agricultures(): QueryBuilder<Agriculture>;
    getPrice(symbol: string): Promise<number | null>;
    getHistoricalData(symbol: string, period: string): Promise<any>;
}
export declare const getCommodity: (commoditiesModule: CommoditiesModule) => (symbol: string) => Commodity | null;
export declare const getAllCommodities: (commoditiesModule: CommoditiesModule) => () => Commodity[];
export declare const findCommodities: (commoditiesModule: CommoditiesModule) => (filter: Record<string, any>) => Commodity[];
//# sourceMappingURL=index.d.ts.map