import { Model } from 'sequelize-typescript';
import { MServerBlocklist, MServerBlocklistAccountServer, MServerBlocklistFormattable } from '../../types/models';
import { AttributesOnly } from '../../../shared/typescript-utils';
import { ServerBlock } from '../../../shared/models';
import { AccountModel } from '../account/account';
import { ServerModel } from './server';
export declare class ServerBlocklistModel extends Model<Partial<AttributesOnly<ServerBlocklistModel>>> {
    createdAt: Date;
    updatedAt: Date;
    accountId: number;
    ByAccount: AccountModel;
    targetServerId: number;
    BlockedServer: ServerModel;
    static isServerMutedByAccounts(accountIds: number[], targetServerId: number): Promise<{
        [accountId: number]: boolean;
    }>;
    static loadByAccountAndHost(accountId: number, host: string): Promise<MServerBlocklist>;
    static listHostsBlockedBy(accountIds: number[]): Promise<string[]>;
    static getBlockStatus(byAccountIds: number[], hosts: string[]): Promise<{
        host: string;
        accountId: number;
    }[]>;
    static listForApi(parameters: {
        start: number;
        count: number;
        sort: string;
        search?: string;
        accountId: number;
    }): Promise<{
        total: number;
        data: MServerBlocklistAccountServer[];
    }>;
    toFormattedJSON(this: MServerBlocklistFormattable): ServerBlock;
}
//# sourceMappingURL=server-blocklist.d.ts.map