/**
 * esa API v1
 * チームのナレッジ共有サービス[esa.io](https://esa.io/)のAPI v1の仕様書
 *
 * The version of the OpenAPI document: 1.0.0
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
import { AxiosPromise, AxiosInstance } from "axios";
import { Configuration } from "../configuration";
import { RequestArgs, BaseAPI } from "../base";
import { Comment } from "../models";
import { CreateCommentBody } from "../models";
import { PaginatedComments } from "../models";
import { UpdateCommentBody } from "../models";
/**
 * CommentApi - axios parameter creator
 * @export
 */
export declare const CommentApiAxiosParamCreator: (configuration?: Configuration) => {
    /**
     * 記事に新しいコメントを作成します。
     * @summary コメントを投稿する
     * @param {string} teamName チーム名
     * @param {number} postNumber 記事ID
     * @param {CreateCommentBody} createCommentBody
     * @param {number} [page] ページ番号
     * @param {number} [perPage] 1ページあたりに含まれる要素数
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    createComment: (teamName: string, postNumber: number, createCommentBody: CreateCommentBody, page?: number, perPage?: number, options?: any) => Promise<RequestArgs>;
    /**
     * 指定されたコメントを削除します。
     * @summary コメントを削除する
     * @param {string} teamName チーム名
     * @param {number} commentId コメントID
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    deleteComment: (teamName: string, commentId: number, options?: any) => Promise<RequestArgs>;
    /**
     * 指定されたコメントを取得します。
     * @summary コメントを取得する
     * @param {string} teamName チーム名
     * @param {number} commentId コメントID
     * @param {'stargazers'} [include] &#x60;stargazers&#x60;を指定するとStarの配列を含んだレスポンスを返します。
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getComment: (teamName: string, commentId: number, include?: "stargazers", options?: any) => Promise<RequestArgs>;
    /**
     * チーム全体のコメント一覧を作成日の降順で返却します。
     * @summary コメント一覧を取得する
     * @param {string} teamName チーム名
     * @param {number} [page] ページ番号
     * @param {number} [perPage] 1ページあたりに含まれる要素数
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getComments: (teamName: string, page?: number, perPage?: number, options?: any) => Promise<RequestArgs>;
    /**
     * 記事のコメント一覧を更新日の降順で返却します。
     * @summary 記事のコメント一覧を取得する
     * @param {string} teamName チーム名
     * @param {number} postNumber 記事ID
     * @param {number} [page] ページ番号
     * @param {number} [perPage] 1ページあたりに含まれる要素数
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getPostComments: (teamName: string, postNumber: number, page?: number, perPage?: number, options?: any) => Promise<RequestArgs>;
    /**
     * 指定されたコメントを更新します。
     * @summary コメントを更新する
     * @param {string} teamName チーム名
     * @param {number} commentId コメントID
     * @param {UpdateCommentBody} updateCommentBody
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    updateComment: (teamName: string, commentId: number, updateCommentBody: UpdateCommentBody, options?: any) => Promise<RequestArgs>;
};
/**
 * CommentApi - functional programming interface
 * @export
 */
export declare const CommentApiFp: (configuration?: Configuration) => {
    /**
     * 記事に新しいコメントを作成します。
     * @summary コメントを投稿する
     * @param {string} teamName チーム名
     * @param {number} postNumber 記事ID
     * @param {CreateCommentBody} createCommentBody
     * @param {number} [page] ページ番号
     * @param {number} [perPage] 1ページあたりに含まれる要素数
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    createComment(teamName: string, postNumber: number, createCommentBody: CreateCommentBody, page?: number, perPage?: number, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Comment>>;
    /**
     * 指定されたコメントを削除します。
     * @summary コメントを削除する
     * @param {string} teamName チーム名
     * @param {number} commentId コメントID
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    deleteComment(teamName: string, commentId: number, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>>;
    /**
     * 指定されたコメントを取得します。
     * @summary コメントを取得する
     * @param {string} teamName チーム名
     * @param {number} commentId コメントID
     * @param {'stargazers'} [include] &#x60;stargazers&#x60;を指定するとStarの配列を含んだレスポンスを返します。
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getComment(teamName: string, commentId: number, include?: "stargazers", options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Comment>>;
    /**
     * チーム全体のコメント一覧を作成日の降順で返却します。
     * @summary コメント一覧を取得する
     * @param {string} teamName チーム名
     * @param {number} [page] ページ番号
     * @param {number} [perPage] 1ページあたりに含まれる要素数
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getComments(teamName: string, page?: number, perPage?: number, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PaginatedComments>>;
    /**
     * 記事のコメント一覧を更新日の降順で返却します。
     * @summary 記事のコメント一覧を取得する
     * @param {string} teamName チーム名
     * @param {number} postNumber 記事ID
     * @param {number} [page] ページ番号
     * @param {number} [perPage] 1ページあたりに含まれる要素数
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getPostComments(teamName: string, postNumber: number, page?: number, perPage?: number, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PaginatedComments>>;
    /**
     * 指定されたコメントを更新します。
     * @summary コメントを更新する
     * @param {string} teamName チーム名
     * @param {number} commentId コメントID
     * @param {UpdateCommentBody} updateCommentBody
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    updateComment(teamName: string, commentId: number, updateCommentBody: UpdateCommentBody, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Comment>>;
};
/**
 * CommentApi - factory interface
 * @export
 */
export declare const CommentApiFactory: (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) => {
    /**
     * 記事に新しいコメントを作成します。
     * @summary コメントを投稿する
     * @param {string} teamName チーム名
     * @param {number} postNumber 記事ID
     * @param {CreateCommentBody} createCommentBody
     * @param {number} [page] ページ番号
     * @param {number} [perPage] 1ページあたりに含まれる要素数
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    createComment(teamName: string, postNumber: number, createCommentBody: CreateCommentBody, page?: number, perPage?: number, options?: any): AxiosPromise<Comment>;
    /**
     * 指定されたコメントを削除します。
     * @summary コメントを削除する
     * @param {string} teamName チーム名
     * @param {number} commentId コメントID
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    deleteComment(teamName: string, commentId: number, options?: any): AxiosPromise<void>;
    /**
     * 指定されたコメントを取得します。
     * @summary コメントを取得する
     * @param {string} teamName チーム名
     * @param {number} commentId コメントID
     * @param {'stargazers'} [include] &#x60;stargazers&#x60;を指定するとStarの配列を含んだレスポンスを返します。
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getComment(teamName: string, commentId: number, include?: "stargazers", options?: any): AxiosPromise<Comment>;
    /**
     * チーム全体のコメント一覧を作成日の降順で返却します。
     * @summary コメント一覧を取得する
     * @param {string} teamName チーム名
     * @param {number} [page] ページ番号
     * @param {number} [perPage] 1ページあたりに含まれる要素数
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getComments(teamName: string, page?: number, perPage?: number, options?: any): AxiosPromise<PaginatedComments>;
    /**
     * 記事のコメント一覧を更新日の降順で返却します。
     * @summary 記事のコメント一覧を取得する
     * @param {string} teamName チーム名
     * @param {number} postNumber 記事ID
     * @param {number} [page] ページ番号
     * @param {number} [perPage] 1ページあたりに含まれる要素数
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getPostComments(teamName: string, postNumber: number, page?: number, perPage?: number, options?: any): AxiosPromise<PaginatedComments>;
    /**
     * 指定されたコメントを更新します。
     * @summary コメントを更新する
     * @param {string} teamName チーム名
     * @param {number} commentId コメントID
     * @param {UpdateCommentBody} updateCommentBody
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    updateComment(teamName: string, commentId: number, updateCommentBody: UpdateCommentBody, options?: any): AxiosPromise<Comment>;
};
/**
 * Request parameters for createComment operation in CommentApi.
 * @export
 * @interface CommentApiCreateCommentRequest
 */
export interface CommentApiCreateCommentRequest {
    /**
     * チーム名
     * @type {string}
     * @memberof CommentApiCreateComment
     */
    readonly teamName: string;
    /**
     * 記事ID
     * @type {number}
     * @memberof CommentApiCreateComment
     */
    readonly postNumber: number;
    /**
     *
     * @type {CreateCommentBody}
     * @memberof CommentApiCreateComment
     */
    readonly createCommentBody: CreateCommentBody;
    /**
     * ページ番号
     * @type {number}
     * @memberof CommentApiCreateComment
     */
    readonly page?: number;
    /**
     * 1ページあたりに含まれる要素数
     * @type {number}
     * @memberof CommentApiCreateComment
     */
    readonly perPage?: number;
}
/**
 * Request parameters for deleteComment operation in CommentApi.
 * @export
 * @interface CommentApiDeleteCommentRequest
 */
export interface CommentApiDeleteCommentRequest {
    /**
     * チーム名
     * @type {string}
     * @memberof CommentApiDeleteComment
     */
    readonly teamName: string;
    /**
     * コメントID
     * @type {number}
     * @memberof CommentApiDeleteComment
     */
    readonly commentId: number;
}
/**
 * Request parameters for getComment operation in CommentApi.
 * @export
 * @interface CommentApiGetCommentRequest
 */
export interface CommentApiGetCommentRequest {
    /**
     * チーム名
     * @type {string}
     * @memberof CommentApiGetComment
     */
    readonly teamName: string;
    /**
     * コメントID
     * @type {number}
     * @memberof CommentApiGetComment
     */
    readonly commentId: number;
    /**
     * &#x60;stargazers&#x60;を指定するとStarの配列を含んだレスポンスを返します。
     * @type {'stargazers'}
     * @memberof CommentApiGetComment
     */
    readonly include?: "stargazers";
}
/**
 * Request parameters for getComments operation in CommentApi.
 * @export
 * @interface CommentApiGetCommentsRequest
 */
export interface CommentApiGetCommentsRequest {
    /**
     * チーム名
     * @type {string}
     * @memberof CommentApiGetComments
     */
    readonly teamName: string;
    /**
     * ページ番号
     * @type {number}
     * @memberof CommentApiGetComments
     */
    readonly page?: number;
    /**
     * 1ページあたりに含まれる要素数
     * @type {number}
     * @memberof CommentApiGetComments
     */
    readonly perPage?: number;
}
/**
 * Request parameters for getPostComments operation in CommentApi.
 * @export
 * @interface CommentApiGetPostCommentsRequest
 */
export interface CommentApiGetPostCommentsRequest {
    /**
     * チーム名
     * @type {string}
     * @memberof CommentApiGetPostComments
     */
    readonly teamName: string;
    /**
     * 記事ID
     * @type {number}
     * @memberof CommentApiGetPostComments
     */
    readonly postNumber: number;
    /**
     * ページ番号
     * @type {number}
     * @memberof CommentApiGetPostComments
     */
    readonly page?: number;
    /**
     * 1ページあたりに含まれる要素数
     * @type {number}
     * @memberof CommentApiGetPostComments
     */
    readonly perPage?: number;
}
/**
 * Request parameters for updateComment operation in CommentApi.
 * @export
 * @interface CommentApiUpdateCommentRequest
 */
export interface CommentApiUpdateCommentRequest {
    /**
     * チーム名
     * @type {string}
     * @memberof CommentApiUpdateComment
     */
    readonly teamName: string;
    /**
     * コメントID
     * @type {number}
     * @memberof CommentApiUpdateComment
     */
    readonly commentId: number;
    /**
     *
     * @type {UpdateCommentBody}
     * @memberof CommentApiUpdateComment
     */
    readonly updateCommentBody: UpdateCommentBody;
}
/**
 * CommentApi - object-oriented interface
 * @export
 * @class CommentApi
 * @extends {BaseAPI}
 */
export declare class CommentApi extends BaseAPI {
    /**
     * 記事に新しいコメントを作成します。
     * @summary コメントを投稿する
     * @param {CommentApiCreateCommentRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CommentApi
     */
    createComment(requestParameters: CommentApiCreateCommentRequest, options?: any): Promise<import("axios").AxiosResponse<Comment, any>>;
    /**
     * 指定されたコメントを削除します。
     * @summary コメントを削除する
     * @param {CommentApiDeleteCommentRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CommentApi
     */
    deleteComment(requestParameters: CommentApiDeleteCommentRequest, options?: any): Promise<import("axios").AxiosResponse<void, any>>;
    /**
     * 指定されたコメントを取得します。
     * @summary コメントを取得する
     * @param {CommentApiGetCommentRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CommentApi
     */
    getComment(requestParameters: CommentApiGetCommentRequest, options?: any): Promise<import("axios").AxiosResponse<Comment, any>>;
    /**
     * チーム全体のコメント一覧を作成日の降順で返却します。
     * @summary コメント一覧を取得する
     * @param {CommentApiGetCommentsRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CommentApi
     */
    getComments(requestParameters: CommentApiGetCommentsRequest, options?: any): Promise<import("axios").AxiosResponse<PaginatedComments, any>>;
    /**
     * 記事のコメント一覧を更新日の降順で返却します。
     * @summary 記事のコメント一覧を取得する
     * @param {CommentApiGetPostCommentsRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CommentApi
     */
    getPostComments(requestParameters: CommentApiGetPostCommentsRequest, options?: any): Promise<import("axios").AxiosResponse<PaginatedComments, any>>;
    /**
     * 指定されたコメントを更新します。
     * @summary コメントを更新する
     * @param {CommentApiUpdateCommentRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CommentApi
     */
    updateComment(requestParameters: CommentApiUpdateCommentRequest, options?: any): Promise<import("axios").AxiosResponse<Comment, any>>;
}
//# sourceMappingURL=comment-api.d.ts.map