/**
 * Farcaster API V2
 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
 *
 * The version of the OpenAPI document: 2.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 type { Configuration } from '../configuration.js';
import type { AxiosPromise, AxiosInstance, AxiosRequestConfig } from 'axios';
import { RequestArgs, BaseAPI } from '../base.js';
import { CastParamType } from '../models';
import { CastResponse } from '../models';
import { CastsResponse } from '../models';
import { DeleteCastReqBody } from '../models';
import { OperationResponse } from '../models';
import { PostCastReqBody } from '../models';
import { PostCastResponse } from '../models';
/**
 * CastApi - axios parameter creator
 * @export
 */
export declare const CastApiAxiosParamCreator: (configuration?: Configuration) => {
    /**
     * Gets information about an individual cast by passing in a Warpcast web URL or cast hash
     * @summary Retrieve cast for a given hash or Warpcast URL
     * @param {CastParamType} type
     * @param {string} identifier Cast identifier (Its either a url or a hash)
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    cast: (type: CastParamType, identifier: string, options?: AxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * Retrieve multiple casts using their respective hashes.
     * @summary Gets information about an array of casts
     * @param {string} casts Hashes of the cast to be retrieved (Comma separated)
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    casts: (casts: string, options?: AxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * Delete an existing cast. \\ (In order to delete a cast `signer_uuid` must be approved)
     * @summary Delete a cast
     * @param {DeleteCastReqBody} deleteCastReqBody
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    deleteCast: (deleteCastReqBody: DeleteCastReqBody, options?: AxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * Posts a cast or cast reply. Works with mentions and embeds.   (In order to post a cast `signer_uuid` must be approved)
     * @summary Posts a cast
     * @param {PostCastReqBody} postCastReqBody
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    postCast: (postCastReqBody: PostCastReqBody, options?: AxiosRequestConfig) => Promise<RequestArgs>;
};
/**
 * CastApi - functional programming interface
 * @export
 */
export declare const CastApiFp: (configuration?: Configuration) => {
    /**
     * Gets information about an individual cast by passing in a Warpcast web URL or cast hash
     * @summary Retrieve cast for a given hash or Warpcast URL
     * @param {CastParamType} type
     * @param {string} identifier Cast identifier (Its either a url or a hash)
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    cast(type: CastParamType, identifier: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<CastResponse>>;
    /**
     * Retrieve multiple casts using their respective hashes.
     * @summary Gets information about an array of casts
     * @param {string} casts Hashes of the cast to be retrieved (Comma separated)
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    casts(casts: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<CastsResponse>>;
    /**
     * Delete an existing cast. \\ (In order to delete a cast `signer_uuid` must be approved)
     * @summary Delete a cast
     * @param {DeleteCastReqBody} deleteCastReqBody
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    deleteCast(deleteCastReqBody: DeleteCastReqBody, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<OperationResponse>>;
    /**
     * Posts a cast or cast reply. Works with mentions and embeds.   (In order to post a cast `signer_uuid` must be approved)
     * @summary Posts a cast
     * @param {PostCastReqBody} postCastReqBody
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    postCast(postCastReqBody: PostCastReqBody, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PostCastResponse>>;
};
/**
 * CastApi - factory interface
 * @export
 */
export declare const CastApiFactory: (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) => {
    /**
     * Gets information about an individual cast by passing in a Warpcast web URL or cast hash
     * @summary Retrieve cast for a given hash or Warpcast URL
     * @param {CastApiCastRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    cast(requestParameters: CastApiCastRequest, options?: AxiosRequestConfig): AxiosPromise<CastResponse>;
    /**
     * Retrieve multiple casts using their respective hashes.
     * @summary Gets information about an array of casts
     * @param {CastApiCastsRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    casts(requestParameters: CastApiCastsRequest, options?: AxiosRequestConfig): AxiosPromise<CastsResponse>;
    /**
     * Delete an existing cast. \\ (In order to delete a cast `signer_uuid` must be approved)
     * @summary Delete a cast
     * @param {CastApiDeleteCastRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    deleteCast(requestParameters: CastApiDeleteCastRequest, options?: AxiosRequestConfig): AxiosPromise<OperationResponse>;
    /**
     * Posts a cast or cast reply. Works with mentions and embeds.   (In order to post a cast `signer_uuid` must be approved)
     * @summary Posts a cast
     * @param {CastApiPostCastRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    postCast(requestParameters: CastApiPostCastRequest, options?: AxiosRequestConfig): AxiosPromise<PostCastResponse>;
};
/**
 * Request parameters for cast operation in CastApi.
 * @export
 * @interface CastApiCastRequest
 */
export interface CastApiCastRequest {
    /**
     *
     * @type {CastParamType}
     * @memberof CastApiCast
     */
    readonly type: CastParamType;
    /**
     * Cast identifier (Its either a url or a hash)
     * @type {string}
     * @memberof CastApiCast
     */
    readonly identifier: string;
}
/**
 * Request parameters for casts operation in CastApi.
 * @export
 * @interface CastApiCastsRequest
 */
export interface CastApiCastsRequest {
    /**
     * Hashes of the cast to be retrieved (Comma separated)
     * @type {string}
     * @memberof CastApiCasts
     */
    readonly casts: string;
}
/**
 * Request parameters for deleteCast operation in CastApi.
 * @export
 * @interface CastApiDeleteCastRequest
 */
export interface CastApiDeleteCastRequest {
    /**
     *
     * @type {DeleteCastReqBody}
     * @memberof CastApiDeleteCast
     */
    readonly deleteCastReqBody: DeleteCastReqBody;
}
/**
 * Request parameters for postCast operation in CastApi.
 * @export
 * @interface CastApiPostCastRequest
 */
export interface CastApiPostCastRequest {
    /**
     *
     * @type {PostCastReqBody}
     * @memberof CastApiPostCast
     */
    readonly postCastReqBody: PostCastReqBody;
}
/**
 * CastApi - object-oriented interface
 * @export
 * @class CastApi
 * @extends {BaseAPI}
 */
export declare class CastApi extends BaseAPI {
    /**
     * Gets information about an individual cast by passing in a Warpcast web URL or cast hash
     * @summary Retrieve cast for a given hash or Warpcast URL
     * @param {CastApiCastRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CastApi
     */
    cast(requestParameters: CastApiCastRequest, options?: AxiosRequestConfig): Promise<import("axios").AxiosResponse<CastResponse, any>>;
    /**
     * Retrieve multiple casts using their respective hashes.
     * @summary Gets information about an array of casts
     * @param {CastApiCastsRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CastApi
     */
    casts(requestParameters: CastApiCastsRequest, options?: AxiosRequestConfig): Promise<import("axios").AxiosResponse<CastsResponse, any>>;
    /**
     * Delete an existing cast. \\ (In order to delete a cast `signer_uuid` must be approved)
     * @summary Delete a cast
     * @param {CastApiDeleteCastRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CastApi
     */
    deleteCast(requestParameters: CastApiDeleteCastRequest, options?: AxiosRequestConfig): Promise<import("axios").AxiosResponse<OperationResponse, any>>;
    /**
     * Posts a cast or cast reply. Works with mentions and embeds.   (In order to post a cast `signer_uuid` must be approved)
     * @summary Posts a cast
     * @param {CastApiPostCastRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CastApi
     */
    postCast(requestParameters: CastApiPostCastRequest, options?: AxiosRequestConfig): Promise<import("axios").AxiosResponse<PostCastResponse, any>>;
}
