import type { APIClient } from '@ffflorian/api-client';
export declare class DiagnosisKeysAPI {
    protected readonly apiClient: APIClient;
    constructor(apiClient: APIClient);
    /**
     * Get all countries for which diagnosis keys are available.
     * @returns countries in ISO-3166 format (e.g. `["DE", "FR"]`)
     */
    getCountries(): Promise<string[]>;
    /**
     * Get all dates for which diagnosis keys are available.
     * @param country An ISO 3166-1 alpha-2 country key (e.g. `DE`).
     *
     * Gives a list of all dates for which diagnosis keys are available for a
     * specific country. For Germany, this would return a list of dates for the
     * past 14 days (if all of them contain diagnosis keys).
     */
    getDatesByCountry(country: string): Promise<string[]>;
    /**
     * Get all hours of a specific date for which diagnosis keys are available.
     * @param country An ISO 3166-1 alpha-2 country key (e.g. `DE`).
     * @param date An ISO-8601 date descriptor (e.g. `2020-05-01`).
     * Server time zone is UTC.
     *
     * Gives a list of all hours (0-23) of a specific date for which diagnosis
     * keys are available for a specific country. For the current date, a list
     * containing the respective numbers/hours for which data is available
     * (e.g. 0-17) will be returned. If the date is outside of the 14-day window,
     * or in the future, an HTTP error code will be returned.
     */
    getHoursByDate(country: string, date: string): Promise<number[]>;
    /**
     * Get all diagnosis keys for a specific date.
     * @param country An ISO 3166-1 alpha-2 country key (e.g. `DE`).
     * @param date An ISO-8601 date descriptor (e.g. `2020-05-01`).
     * Server time zone is UTC.
     *
     * Gives all diagnosis keys for a specific country on a specific date. If
     * there are no diagnosis keys available for that date (but the date is still
     * within the 14-day window), a signed payload with an empty list of diagnosis
     * keys will be returned. If the date is outside of the 14-day window, or in
     * the future, an HTTP error code will be returned.
     */
    getKeysByDate(country: string, date: string): Promise<Buffer>;
    /**
     * Get all diagnosis keys for a specific hour on a specific date.
     * @param country An ISO 3166-1 alpha-2 country key (e.g. `DE`).
     * @param hour An integer number between 0 and 23.
     * Server time zone is UTC.
     *
     * Gives all diagnosis keys for a specific country on a specific date within
     * a specific hour. If there are no diagnosis keys available for the hour (but
     * the date is still within the 14-day window), a signed payload with an empty
     * list of diagnosis keys will be returned. If the date is outside of the
     * 14-day window, or in the future, or an hour > 23 was requested, an HTTP
     * error code will be returned.
     */
    getKeysByHour(country: string, date: string, hour: number): Promise<Buffer>;
    /**
     * Post diagnosis keys.
     * @param keys A collection of temporary exposure keys.
     * @param cwaAuthorization TAN code associated with this diagnosis key submission.
     * @param cwaFake Requests with a value of "0" will be fully processed. Any other
     * value indicates that this request shall be handled as a "fake" request.
     */
    postKeys(keys: Buffer, cwaAuthorization: string, cwaFake: string): Promise<void>;
}
