import { BaseClient } from './baseClient';
export interface Nonce {
    nonce: string;
}
export interface Announcement {
    announcementId: string;
    eventId: string;
    offerId: string;
    announcement: string;
    attestation?: string;
    cso: boolean;
    startDate: number;
    endDate: number;
    nonces: Nonce[];
    quantity?: number;
    outcome?: string;
}
export interface AnnouncementResponse {
    announcements: Announcement[];
}
/**
 * Oracle client
 */
export declare class OracleClient extends BaseClient {
    /**
     * getAnnouncements
     *
     * Get all announcements
     *
     * @returns
     */
    getAnnouncements(offerId?: string, startDate?: number, endDate?: number, page?: number, limit?: number): Promise<AnnouncementResponse>;
    /**
     * getAnnouncementByEventId
     *
     * Get Announcement By Event ID
     *
     * @param {string} eventId the eventId for the DLC OracleAnnouncement
     *                         https://github.com/discreetlogcontracts/dlcspecs/blob/master/Messaging.md#oracle_event
     * @returns {Announcement}
     */
    getAnnouncementByEventId(eventId: string): Promise<Announcement>;
    /**
     * getAnnouncementByAnnouncementId
     *
     * Get Announcement By Annoucement ID
     *
     * @param {string} announcementId the announcementId for the DLC OracleAnnouncement
     *                         https://github.com/discreetlogcontracts/dlcspecs/blob/master/Messaging.md#oracle_event
     * @returns {Announcement}
     */
    getAnnouncementByAnnouncementId(announcementId: string): Promise<Announcement>;
    /**
     * postAnnouncementQuantity
     *
     * Specify quantity of funds entered for a particular announcement
     * Note: this function does not modify the DLC OracleAnnouncement
     *       itself but rather the Oracle internal DB
     *
     * @param {string} eventId the eventId for the DLC OracleAnnouncement
     *                         https://github.com/discreetlogcontracts/dlcspecs/blob/master/Messaging.md#oracle_event
     * @param {number} quantity the quantity entered in SATS
     * @returns {Announcement} return modified announcement
     */
    postAnnouncementQuantity(eventId: string, quantity: number): Promise<Announcement>;
}
