"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Notifications = void 0;
class Notifications {
    constructor(client) {
        this.client = client;
    }
    async getNotification(parameters, callback) {
        const config = {
            url: `/notifications/${parameters.id}`,
            method: 'GET',
            params: {
                board: parameters.board,
                board_fields: parameters.boardFields,
                card: parameters.card,
                card_fields: parameters.cardFields,
                display: parameters.display,
                entities: parameters.entities,
                fields: parameters.fields,
                list: parameters.list,
                member: parameters.member,
                member_fields: parameters.memberFields,
                memberCreator: parameters.memberCreator,
                memberCreator_fields: parameters.memberCreatorFields,
                organization: parameters.organization,
                organization_fields: parameters.organizationFields,
            },
        };
        return this.client.sendRequest(config, callback);
    }
    async updateNotification(parameters, callback) {
        const config = {
            url: `/notifications/${parameters.id}`,
            method: 'PUT',
            params: {
                unread: parameters.unread,
            },
        };
        return this.client.sendRequest(config, callback);
    }
    async getNotificationField(parameters, callback) {
        const config = {
            url: `/notifications/${parameters.id}/${parameters.field}`,
            method: 'GET',
        };
        return this.client.sendRequest(config, callback);
    }
    async markAllNotificationsAsRead(parameters, callback) {
        const config = {
            url: '/notifications/all/read',
            method: 'POST',
            params: {
                read: parameters === null || parameters === void 0 ? void 0 : parameters.read,
                ids: parameters === null || parameters === void 0 ? void 0 : parameters.ids,
            },
        };
        return this.client.sendRequest(config, callback);
    }
    async updateNotificationReadStatus(parameters, callback) {
        const config = {
            url: `/notifications/${parameters.id}/unread`,
            method: 'PUT',
            params: {
                value: parameters.value,
            },
        };
        return this.client.sendRequest(config, callback);
    }
    async getNotificationBoard(parameters, callback) {
        const config = {
            url: `/notifications/${parameters.id}/board`,
            method: 'GET',
            params: {
                fields: parameters.fields,
            },
        };
        return this.client.sendRequest(config, callback);
    }
    async getNotificationCard(parameters, callback) {
        const config = {
            url: `/notifications/${parameters.id}/card`,
            method: 'GET',
            params: {
                fields: parameters.fields,
            },
        };
        return this.client.sendRequest(config, callback);
    }
    async getNotificationList(parameters, callback) {
        const config = {
            url: `/notifications/${parameters.id}/list`,
            method: 'GET',
            params: {
                fields: parameters.fields,
            },
        };
        return this.client.sendRequest(config, callback);
    }
    async getNotificationMember(parameters, callback) {
        const config = {
            url: `/notifications/${parameters.id}/member`,
            method: 'GET',
            params: {
                fields: parameters.fields,
            },
        };
        return this.client.sendRequest(config, callback);
    }
    async getNotificationMemberCreator(parameters, callback) {
        const config = {
            url: `/notifications/${parameters.id}/memberCreator`,
            method: 'GET',
            params: {
                fields: parameters.fields,
            },
        };
        return this.client.sendRequest(config, callback);
    }
    async getNotificationOrganization(parameters, callback) {
        const config = {
            url: `/notifications/${parameters.id}/organization`,
            method: 'GET',
            params: {
                fields: parameters.fields,
            },
        };
        return this.client.sendRequest(config, callback);
    }
}
exports.Notifications = Notifications;
