import type { Proxy } from './Proxy';
import type * as ChannelListAPIInterface from './interfaces/ChannelListAPIInterface';
import type * as GetRankingAPIInterface from './interfaces/GetRankingAPIInterface';
import type { ChannelProgramInfo } from './interfaces/HiNetHichannelInterface';
export declare class HiNetHichannel {
    private readonly _hichannelUrl;
    private readonly _hichannelRadioPath;
    private readonly _hichannelImagePath;
    private readonly _hichannelApiChannelList;
    private readonly _hichannelApiRanking;
    private readonly _hichannelApiPlayerUrl;
    private readonly _hichannelApiProgramList;
    private readonly _hichannelApiNowProgram;
    private readonly _axiosInstance;
    private _hichannelChannelName;
    /**
     * HiNetHichannel constructor.
     *
     * @param {Proxy} proxy 代理伺服器 (預設不使用代理)
     */
    constructor(proxy?: Proxy);
    /**
     * 取得電台頻道列表
     *
     * @param {string} keyword 搜尋關鍵字
     *
     * @returns {Promise<ChannelListAPIInterface.List[]>}
     */
    getChannels(keyword?: string): Promise<ChannelListAPIInterface.List[]>;
    /**
     * 取得熱門排行電台頻道
     *
     * @returns {Promise<GetRankingAPIInterface.List[]>}
     */
    getRankingChannels(): Promise<GetRankingAPIInterface.List[]>;
    /**
     * 取得指定電台頻道資料
     *
     * @param {string} hichannelChannelName Hichannel 電台頻道名稱
     *
     * @returns {Promise<GetRankingAPIInterface.List>}
     */
    getChannel(hichannelChannelName: string): Promise<GetRankingAPIInterface.List>;
    /**
     * 設定電台頻道
     *
     * @param {string} hichannelChannelName Hichannel 電台頻道名稱
     */
    setChannel(hichannelChannelName: string): void;
    /**
     * 取得電台頻道 m3u8 串流網址
     *
     * @returns {Promise<string>}
     */
    getChannelM3u8Url(): Promise<string>;
    /**
     * 取得電台頻道節目資訊
     *
     * @returns {Promise<ChannelProgramInfo>}
     */
    getChannelProgramInfo(): Promise<ChannelProgramInfo>;
}
