import { TraktNoteRequest, TraktNote, TraktNoteItem } from '../../models/trakt-note.model.js';
import { TraktClientEndpoint, TraktApiParamsExtended } from '../../models/trakt-client.model.js';
import '@dvcol/common-utils/common/models';
import '../../models/trakt-entity.model.js';
import '../../models/trakt-id.model.js';
import '@dvcol/base-http-client';
import '@dvcol/common-utils/http/fetch';
import '../trakt-api.filters.js';
import '../../models/trakt-episode.model.js';
import '../../models/trakt-image.model.js';
import '../../models/trakt-people.model.js';
import '../../models/trakt-movie.model.js';
import '../../models/trakt-season.model.js';
import '../../models/trakt-show.model.js';
import '../../trakt-list.model-CeURmxQs.js';
/**
* Notes (500 maximum characters) attached to any movie, show, season, episode, or person and are only visible to the user who created them.
* They are also set to private and can't be marked as a spoiler. Notes attached to any history, collection, or rating can have their privacy and spoiler set.
*
* Possible Error Responses
*
* * 401 - Invalid user
* * 404 - Item not found or doesn't allow notes
* * 409 - Note can't be deleted
* * 422 - Validation errors
*
* @see [notes](https://trakt.docs.apiary.io/#reference/notes)
*/
declare const notes: {
/**
* Notes (500 maximum characters) added to a movie, show, season, episode, or person will automatically be set to private. You can send just the media item.
*
* Notes (500 maximum characters) added to a history, collection, or rating can have their privacy and spoiler set. You need to send the attached_to object so we know where to attach the note.
*
* @vip required - [Requires a paid VIP subscription]{@link https://trakt.docs.apiary.io/#introduction/vip-methods}
* @emoji true - [documentation]{@link https://trakt.docs.apiary.io/#introduction/emojis}
* @auth required
*/
add: TraktClientEndpoint;
/**
* Returns a single note.
*
* @vip required - [Requires a paid VIP subscription]{@link https://trakt.docs.apiary.io/#introduction/vip-methods}
* @emoji true - [documentation]{@link https://trakt.docs.apiary.io/#introduction/emojis}
* @auth required
*
* @see [get-a-note]{@link https://trakt.docs.apiary.io/#reference/notes/note/get-a-note}
*/
get: TraktClientEndpoint<{
/** A specific note ID */
id: number;
}, TraktNote, true>;
/**
* Update a single note (500 maximum characters). The OAuth user must match the author of the note in order to update it. If not, a 401 HTTP status is returned.
*
* @vip required - [Requires a paid VIP subscription]{@link https://trakt.docs.apiary.io/#introduction/vip-methods}
* @emoji true - [documentation]{@link https://trakt.docs.apiary.io/#introduction/emojis}
* @auth required
*
* @see [update-a-note]{@link https://trakt.docs.apiary.io/#reference/notes/note/update-a-note}
*/
update: TraktClientEndpoint<{
/** A specific note ID */
id: number;
}, TraktNote, false>;
/**
* Delete a single note. The OAuth user must match the author of the comment in order to delete it. If not, a 401 HTTP status code is returned.
*
* @vip required - [Requires a paid VIP subscription]{@link https://trakt.docs.apiary.io/#introduction/vip-methods}
* @auth required
*
* @see [delete-a-note]{@link https://trakt.docs.apiary.io/#reference/notes/note/delete-a-note}
*/
delete: TraktClientEndpoint<{
/** A specific note ID */
id: number;
}, unknown, false>;
/**
* Returns the item this note is attached_to.
* Media items like movie, show, season, episode, or person are straightforward, but history will need to be mapped to that specific play in their watched history since they might have multiple plays.
* Since collection and rating is a 1:1 association, you can assume the note is attached to the media item in the type field that has been collected or rated.
*
* @vip required - [Requires a paid VIP subscription]{@link https://trakt.docs.apiary.io/#introduction/vip-methods}
* @extended true - {@link TraktApiExtended.Full}
*
* @see [get-the-attached-item]{@link https://trakt.docs.apiary.io/#reference/notes/item/get-the-attached-item}
*/
items: TraktClientEndpoint<{
/** A specific note ID */
id: number;
} & TraktApiParamsExtended<"full">, TraktNoteItem, true>;
};
export { notes };