import { ITelegramClient } from '../../client.types.js';
import { Chat } from '../../types/index.js';
import { BoostSlot } from '../../types/premium/boost-slot.js';
export type CanApplyBoostResult = {
    can: true;
    replace?: Chat[];
    slots: BoostSlot[];
} | {
    can: false;
    reason: 'need_premium';
    slots: BoostSlot[];
} | {
    can: false;
    reason: 'no_slots';
    slots: BoostSlot[];
};
/**
 * Check if the current user can apply boost to some channel
 *
 * @returns
 *   - `{ can: true }` if the user can apply boost
 *      - `.replace` - {@link Chat}s that can be replaced with the current one.
 *        If the user can apply boost without replacing any chats, this field will be `undefined`.
 *   - `{ can: false }` if the user can't apply boost
 *      - `.reason == "no_slots"` if the user has no available slots
 *      - `.reason == "need_premium"` if the user needs Premium to boost
 *   - In all cases, `slots` will contain all the current user's boost slots
 */
export declare function canApplyBoost(client: ITelegramClient): Promise<CanApplyBoostResult>;
