import Base from '../../Base';
import type Client from '../../Client';
import type ClientParty from './ClientParty';
import type ClientUser from '../user/ClientUser';
import type Friend from '../friend/Friend';
import type Party from './Party';
/**
 * Represents a party invitation (either incoming or outgoing)
 */
declare abstract class BasePartyInvitation extends Base {
    /**
     * The party this invitation belongs to
     */
    party: Party | ClientParty;
    /**
     * The party this invitation belongs to
     */
    sender: Friend | ClientUser;
    /**
     * The creation date of this invitation
     */
    createdAt: Date;
    /**
     * The expiration date of this invitation
     */
    expiresAt: Date;
    /**
     * Whether this invitation got accepted / declined / aborted
     */
    isHandled: boolean;
    /**
     * The friend (or the client user) who received this invitation
     */
    receiver: Friend | ClientUser;
    /**
     * @param client The main client
     * @param party The party this invitation belongs to
     * @param sender The friend (or the client user) who sent this invitation
     * @param receiver The friend (or the client user) who received this invitation
     * @param data The invitation data
     */
    constructor(client: Client, party: Party | ClientParty, sender: Friend | ClientUser, receiver: Friend | ClientUser, data: any);
    /**
     * Whether this invitation expired
     */
    get isExpired(): boolean;
}
export default BasePartyInvitation;
