import { AxiosInstance } from 'axios';
import { AxiosPromise } from 'axios';
import { AxiosRequestConfig } from 'axios';
import { AxiosResponse } from 'axios';
import { RawAxiosRequestConfig } from 'axios';

/**
 *
 * @export
 * @interface AcceptInvitation200Response
 */
declare interface AcceptInvitation200Response {
    /**
     *
     * @type {boolean}
     * @memberof AcceptInvitation200Response
     */
    'result'?: boolean;
    /**
     *
     * @type {Role}
     * @memberof AcceptInvitation200Response
     */
    'role'?: Role;
}

declare class AuthenticationApi extends AuthenticationApi_2 {
    /**
     * Wrapper function of {@link _AuthenticationApi.getOrRefreshToken} for token exchange.
     * @param request {@link ObtainToken} but without `grant_type` field.
     * @param options Axios request configuration.
     * @returns API response.
     */
    exchangeToken(request: Omit<ObtainToken, "grant_type">, options?: AxiosRequestConfig<any>): Promise<AxiosResponse<TokenResponse, any>>;
    /**
     * Wrapper function of {@link _AuthenticationApi.getOrRefreshToken} for token refresh.
     * @param request {@link RefreshToken} but without `grant_type` field.
     * @param options Axios request configuration.
     * @returns API response.
     */
    refreshToken(request: Omit<RefreshToken, "grant_type">, options?: AxiosRequestConfig<any>): Promise<AxiosResponse<TokenResponse, any>>;
}

/**
 * AuthenticationApi - object-oriented interface
 * @export
 * @class AuthenticationApi
 * @extends {BaseAPI}
 */
declare class AuthenticationApi_2 extends BaseAPI {
    /**
     *
     * @param {string} redirectUri
     * @param {string} clientId
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof AuthenticationApi
     */
    authorize(redirectUri: string, clientId: string, options?: RawAxiosRequestConfig): Promise<AxiosResponse<void, any>>;
    /**
     *
     * @param {GetOrRefreshTokenRequest} [getOrRefreshTokenRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof AuthenticationApi
     */
    getOrRefreshToken(getOrRefreshTokenRequest?: GetOrRefreshTokenRequest, options?: RawAxiosRequestConfig): Promise<AxiosResponse<GetOrRefreshToken200Response, any>>;
}

/**
 * AuthenticationApi - axios parameter creator
 * @export
 */
declare const AuthenticationApiAxiosParamCreator: (configuration?: Configuration) => {
    /**
     *
     * @param {string} redirectUri
     * @param {string} clientId
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    authorize: (redirectUri: string, clientId: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     *
     * @param {GetOrRefreshTokenRequest} [getOrRefreshTokenRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getOrRefreshToken: (getOrRefreshTokenRequest?: GetOrRefreshTokenRequest, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
};

/**
 * AuthenticationApi - factory interface
 * @export
 */
declare const AuthenticationApiFactory: (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) => {
    /**
     *
     * @param {string} redirectUri
     * @param {string} clientId
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    authorize(redirectUri: string, clientId: string, options?: any): AxiosPromise<void>;
    /**
     *
     * @param {GetOrRefreshTokenRequest} [getOrRefreshTokenRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getOrRefreshToken(getOrRefreshTokenRequest?: GetOrRefreshTokenRequest, options?: any): AxiosPromise<GetOrRefreshToken200Response>;
};

/**
 * AuthenticationApi - functional programming interface
 * @export
 */
declare const AuthenticationApiFp: (configuration?: Configuration) => {
    /**
     *
     * @param {string} redirectUri
     * @param {string} clientId
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    authorize(redirectUri: string, clientId: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>>;
    /**
     *
     * @param {GetOrRefreshTokenRequest} [getOrRefreshTokenRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getOrRefreshToken(getOrRefreshTokenRequest?: GetOrRefreshTokenRequest, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<GetOrRefreshToken200Response>>;
};

/**
 *
 * @export
 * @class BaseAPI
 */
declare class BaseAPI {
    protected basePath: string;
    protected axios: AxiosInstance;
    protected configuration: Configuration | undefined;
    constructor(configuration?: Configuration, basePath?: string, axios?: AxiosInstance);
}

/**
 *
 * @export
 * @interface ChangeCollaboratorAccessLevelRequest
 */
declare interface ChangeCollaboratorAccessLevelRequest {
    /**
     *
     * @type {Role}
     * @memberof ChangeCollaboratorAccessLevelRequest
     */
    'role'?: Role;
}

/**
 *
 * @export
 * @interface CheckURLsExistRequest
 */
declare interface CheckURLsExistRequest {
    /**
     *
     * @type {Array<string>}
     * @memberof CheckURLsExistRequest
     */
    'urls'?: Array<string>;
}

/**
 *
 * @export
 * @interface CheckURLsExistResponse
 */
declare interface CheckURLsExistResponse {
    /**
     *
     * @type {boolean}
     * @memberof CheckURLsExistResponse
     */
    'result': boolean;
    /**
     *
     * @type {Array<number>}
     * @memberof CheckURLsExistResponse
     */
    'ids': Array<number>;
    /**
     *
     * @type {Array<CheckURLsExistResponseDuplicatesInner>}
     * @memberof CheckURLsExistResponse
     */
    'duplicates': Array<CheckURLsExistResponseDuplicatesInner>;
    /**
     *
     * @type {number}
     * @memberof CheckURLsExistResponse
     */
    'id': number;
}

/**
 *
 * @export
 * @interface CheckURLsExistResponseDuplicatesInner
 */
declare interface CheckURLsExistResponseDuplicatesInner {
    /**
     *
     * @type {number}
     * @memberof CheckURLsExistResponseDuplicatesInner
     */
    '_id': number;
    /**
     *
     * @type {string}
     * @memberof CheckURLsExistResponseDuplicatesInner
     */
    'link': string;
}

declare namespace client {
    export {
        Raindrop
    }
}
export { client }

/**
 *
 * @export
 * @interface Collection
 */
declare interface Collection {
    /**
     *
     * @type {number}
     * @memberof Collection
     */
    '_id': number;
    /**
     *
     * @type {string}
     * @memberof Collection
     */
    'title': string;
    /**
     *
     * @type {string}
     * @memberof Collection
     */
    'description': string;
    /**
     *
     * @type {UserRef}
     * @memberof Collection
     */
    'user': UserRef;
    /**
     *
     * @type {boolean}
     * @memberof Collection
     */
    'public': boolean;
    /**
     *
     * @type {string}
     * @memberof Collection
     */
    'view': string;
    /**
     *
     * @type {number}
     * @memberof Collection
     */
    'count': number;
    /**
     *
     * @type {Array<string>}
     * @memberof Collection
     */
    'cover': Array<string>;
    /**
     *
     * @type {number}
     * @memberof Collection
     */
    'sort': number;
    /**
     *
     * @type {boolean}
     * @memberof Collection
     */
    'expanded': boolean;
    /**
     *
     * @type {CreatorRef}
     * @memberof Collection
     */
    'creatorRef': CreatorRef;
    /**
     *
     * @type {string}
     * @memberof Collection
     */
    'lastAction': string;
    /**
     *
     * @type {string}
     * @memberof Collection
     */
    'created': string;
    /**
     *
     * @type {string}
     * @memberof Collection
     */
    'lastUpdate': string;
    /**
     *
     * @type {string}
     * @memberof Collection
     */
    'slug': string;
    /**
     *
     * @type {string}
     * @memberof Collection
     */
    'color'?: string;
    /**
     *
     * @type {CollectionAccess}
     * @memberof Collection
     */
    'access': CollectionAccess;
    /**
     *
     * @type {boolean}
     * @memberof Collection
     */
    'author': boolean;
    /**
     *
     * @type {object}
     * @memberof Collection
     */
    'parent': object | null;
}

/**
 *
 * @export
 * @interface CollectionAccess
 */
declare interface CollectionAccess {
    /**
     *
     * @type {boolean}
     * @memberof CollectionAccess
     */
    'draggable': boolean;
    /**
     *
     * @type {number}
     * @memberof CollectionAccess
     */
    'for': number;
    /**
     *
     * @type {number}
     * @memberof CollectionAccess
     */
    'level': number;
    /**
     *
     * @type {boolean}
     * @memberof CollectionAccess
     */
    'root': boolean;
}

declare class CollectionApi extends CollectionApi_2 {
    /**
     * Create structured tree of collections.
     * @returns Root of tree.
     */
    getCollectionTree(): Promise<TreeNode<CollectionItem | null>>;
}

/**
 * CollectionApi - object-oriented interface
 * @export
 * @class CollectionApi
 * @extends {BaseAPI}
 */
declare class CollectionApi_2 extends BaseAPI {
    /**
     *
     * @param {number} id
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CollectionApi
     */
    acceptInvitation(id: number, options?: RawAxiosRequestConfig): Promise<AxiosResponse<AcceptInvitation200Response, any>>;
    /**
     *
     * @param {number} userId
     * @param {number} id
     * @param {ChangeCollaboratorAccessLevelRequest} [changeCollaboratorAccessLevelRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CollectionApi
     */
    changeCollaboratorAccessLevel(userId: number, id: number, changeCollaboratorAccessLevelRequest?: ChangeCollaboratorAccessLevelRequest, options?: RawAxiosRequestConfig): Promise<AxiosResponse<void, any>>;
    /**
     *
     * @param {CreateCollectionRequest} [createCollectionRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CollectionApi
     */
    createCollection(createCollectionRequest?: CreateCollectionRequest, options?: RawAxiosRequestConfig): Promise<AxiosResponse<CreateCollectionResponse, any>>;
    /**
     *
     * @param {number} userId
     * @param {number} id
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CollectionApi
     */
    deleteCollaborator(userId: number, id: number, options?: RawAxiosRequestConfig): Promise<AxiosResponse<SimpleResponse, any>>;
    /**
     *
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CollectionApi
     */
    emptyTrash(options?: RawAxiosRequestConfig): Promise<AxiosResponse<SimpleResponse, any>>;
    /**
     *
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CollectionApi
     */
    getChildCollections(options?: RawAxiosRequestConfig): Promise<AxiosResponse<GetChildCollectionsResponse, any>>;
    /**
     *
     * @param {number} id
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CollectionApi
     */
    getCollaborators(id: number, options?: RawAxiosRequestConfig): Promise<AxiosResponse<void, any>>;
    /**
     *
     * @param {number} id
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CollectionApi
     */
    getCollection(id: number, options?: RawAxiosRequestConfig): Promise<AxiosResponse<GetCollectionResponse, any>>;
    /**
     *
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CollectionApi
     */
    getFeaturedCovers(options?: RawAxiosRequestConfig): Promise<AxiosResponse<GetFeaturedCoversResponse, any>>;
    /**
     *
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CollectionApi
     */
    getRootCollections(options?: RawAxiosRequestConfig): Promise<AxiosResponse<GetRootCollectionsResponse, any>>;
    /**
     *
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CollectionApi
     */
    getSystemCollectionStats(options?: RawAxiosRequestConfig): Promise<AxiosResponse<GetSystemCollectionStatsResponse, any>>;
    /**
     *
     * @param {MergeCollectionsRequest} [mergeCollectionsRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CollectionApi
     */
    mergeCollections(mergeCollectionsRequest?: MergeCollectionsRequest, options?: RawAxiosRequestConfig): Promise<AxiosResponse<MergeCollectionsResponse, any>>;
    /**
     *
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CollectionApi
     */
    removeAllEmptyCollections(options?: RawAxiosRequestConfig): Promise<AxiosResponse<RemoveAllEmptyCollectionsResponse, any>>;
    /**
     *
     * @param {number} id
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CollectionApi
     */
    removeCollection(id: number, options?: RawAxiosRequestConfig): Promise<AxiosResponse<SimpleResponse, any>>;
    /**
     *
     * @param {RemoveCollectionsRequest} [removeCollectionsRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CollectionApi
     */
    removeCollections(removeCollectionsRequest?: RemoveCollectionsRequest, options?: RawAxiosRequestConfig): Promise<AxiosResponse<RemoveCollectionsResponse, any>>;
    /**
     *
     * @param {ReorderAllCollectionsRequest} [reorderAllCollectionsRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CollectionApi
     */
    reorderAllCollections(reorderAllCollectionsRequest?: ReorderAllCollectionsRequest, options?: RawAxiosRequestConfig): Promise<AxiosResponse<SimpleResponse, any>>;
    /**
     *
     * @param {string} text
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CollectionApi
     */
    searchCovers(text: string, options?: RawAxiosRequestConfig): Promise<AxiosResponse<SearchCoversResponse, any>>;
    /**
     *
     * @param {number} id
     * @param {ShareCollectionRequest} [shareCollectionRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CollectionApi
     */
    shareCollection(id: number, shareCollectionRequest?: ShareCollectionRequest, options?: RawAxiosRequestConfig): Promise<AxiosResponse<ShareCollectionResponse, any>>;
    /**
     *
     * @param {number} id
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CollectionApi
     */
    unshareOrLeaveCollection(id: number, options?: RawAxiosRequestConfig): Promise<AxiosResponse<SimpleResponse, any>>;
    /**
     *
     * @param {number} id
     * @param {UpdateCollectionRequest} [updateCollectionRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CollectionApi
     */
    updateCollection(id: number, updateCollectionRequest?: UpdateCollectionRequest, options?: RawAxiosRequestConfig): Promise<AxiosResponse<UpdateCollectionResponse, any>>;
    /**
     *
     * @param {number} id
     * @param {File} [cover]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CollectionApi
     */
    uploadCollectionCover(id: number, cover?: File, options?: RawAxiosRequestConfig): Promise<AxiosResponse<UploadCollectionCoverResponse, any>>;
}

/**
 * CollectionApi - axios parameter creator
 * @export
 */
declare const CollectionApiAxiosParamCreator: (configuration?: Configuration) => {
    /**
     *
     * @param {number} id
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    acceptInvitation: (id: number, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     *
     * @param {number} userId
     * @param {number} id
     * @param {ChangeCollaboratorAccessLevelRequest} [changeCollaboratorAccessLevelRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    changeCollaboratorAccessLevel: (userId: number, id: number, changeCollaboratorAccessLevelRequest?: ChangeCollaboratorAccessLevelRequest, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     *
     * @param {CreateCollectionRequest} [createCollectionRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    createCollection: (createCollectionRequest?: CreateCollectionRequest, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     *
     * @param {number} userId
     * @param {number} id
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    deleteCollaborator: (userId: number, id: number, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     *
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    emptyTrash: (options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     *
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getChildCollections: (options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     *
     * @param {number} id
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getCollaborators: (id: number, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     *
     * @param {number} id
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getCollection: (id: number, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     *
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getFeaturedCovers: (options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     *
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getRootCollections: (options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     *
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getSystemCollectionStats: (options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     *
     * @param {MergeCollectionsRequest} [mergeCollectionsRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    mergeCollections: (mergeCollectionsRequest?: MergeCollectionsRequest, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     *
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    removeAllEmptyCollections: (options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     *
     * @param {number} id
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    removeCollection: (id: number, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     *
     * @param {RemoveCollectionsRequest} [removeCollectionsRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    removeCollections: (removeCollectionsRequest?: RemoveCollectionsRequest, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     *
     * @param {ReorderAllCollectionsRequest} [reorderAllCollectionsRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    reorderAllCollections: (reorderAllCollectionsRequest?: ReorderAllCollectionsRequest, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     *
     * @param {string} text
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    searchCovers: (text: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     *
     * @param {number} id
     * @param {ShareCollectionRequest} [shareCollectionRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    shareCollection: (id: number, shareCollectionRequest?: ShareCollectionRequest, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     *
     * @param {number} id
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    unshareOrLeaveCollection: (id: number, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     *
     * @param {number} id
     * @param {UpdateCollectionRequest} [updateCollectionRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    updateCollection: (id: number, updateCollectionRequest?: UpdateCollectionRequest, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     *
     * @param {number} id
     * @param {File} [cover]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    uploadCollectionCover: (id: number, cover?: File, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
};

/**
 * CollectionApi - factory interface
 * @export
 */
declare const CollectionApiFactory: (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) => {
    /**
     *
     * @param {number} id
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    acceptInvitation(id: number, options?: any): AxiosPromise<AcceptInvitation200Response>;
    /**
     *
     * @param {number} userId
     * @param {number} id
     * @param {ChangeCollaboratorAccessLevelRequest} [changeCollaboratorAccessLevelRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    changeCollaboratorAccessLevel(userId: number, id: number, changeCollaboratorAccessLevelRequest?: ChangeCollaboratorAccessLevelRequest, options?: any): AxiosPromise<void>;
    /**
     *
     * @param {CreateCollectionRequest} [createCollectionRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    createCollection(createCollectionRequest?: CreateCollectionRequest, options?: any): AxiosPromise<CreateCollectionResponse>;
    /**
     *
     * @param {number} userId
     * @param {number} id
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    deleteCollaborator(userId: number, id: number, options?: any): AxiosPromise<SimpleResponse>;
    /**
     *
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    emptyTrash(options?: any): AxiosPromise<SimpleResponse>;
    /**
     *
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getChildCollections(options?: any): AxiosPromise<GetChildCollectionsResponse>;
    /**
     *
     * @param {number} id
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getCollaborators(id: number, options?: any): AxiosPromise<void>;
    /**
     *
     * @param {number} id
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getCollection(id: number, options?: any): AxiosPromise<GetCollectionResponse>;
    /**
     *
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getFeaturedCovers(options?: any): AxiosPromise<GetFeaturedCoversResponse>;
    /**
     *
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getRootCollections(options?: any): AxiosPromise<GetRootCollectionsResponse>;
    /**
     *
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getSystemCollectionStats(options?: any): AxiosPromise<GetSystemCollectionStatsResponse>;
    /**
     *
     * @param {MergeCollectionsRequest} [mergeCollectionsRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    mergeCollections(mergeCollectionsRequest?: MergeCollectionsRequest, options?: any): AxiosPromise<MergeCollectionsResponse>;
    /**
     *
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    removeAllEmptyCollections(options?: any): AxiosPromise<RemoveAllEmptyCollectionsResponse>;
    /**
     *
     * @param {number} id
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    removeCollection(id: number, options?: any): AxiosPromise<SimpleResponse>;
    /**
     *
     * @param {RemoveCollectionsRequest} [removeCollectionsRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    removeCollections(removeCollectionsRequest?: RemoveCollectionsRequest, options?: any): AxiosPromise<RemoveCollectionsResponse>;
    /**
     *
     * @param {ReorderAllCollectionsRequest} [reorderAllCollectionsRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    reorderAllCollections(reorderAllCollectionsRequest?: ReorderAllCollectionsRequest, options?: any): AxiosPromise<SimpleResponse>;
    /**
     *
     * @param {string} text
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    searchCovers(text: string, options?: any): AxiosPromise<SearchCoversResponse>;
    /**
     *
     * @param {number} id
     * @param {ShareCollectionRequest} [shareCollectionRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    shareCollection(id: number, shareCollectionRequest?: ShareCollectionRequest, options?: any): AxiosPromise<ShareCollectionResponse>;
    /**
     *
     * @param {number} id
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    unshareOrLeaveCollection(id: number, options?: any): AxiosPromise<SimpleResponse>;
    /**
     *
     * @param {number} id
     * @param {UpdateCollectionRequest} [updateCollectionRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    updateCollection(id: number, updateCollectionRequest?: UpdateCollectionRequest, options?: any): AxiosPromise<UpdateCollectionResponse>;
    /**
     *
     * @param {number} id
     * @param {File} [cover]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    uploadCollectionCover(id: number, cover?: File, options?: any): AxiosPromise<UploadCollectionCoverResponse>;
};

/**
 * CollectionApi - functional programming interface
 * @export
 */
declare const CollectionApiFp: (configuration?: Configuration) => {
    /**
     *
     * @param {number} id
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    acceptInvitation(id: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<AcceptInvitation200Response>>;
    /**
     *
     * @param {number} userId
     * @param {number} id
     * @param {ChangeCollaboratorAccessLevelRequest} [changeCollaboratorAccessLevelRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    changeCollaboratorAccessLevel(userId: number, id: number, changeCollaboratorAccessLevelRequest?: ChangeCollaboratorAccessLevelRequest, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>>;
    /**
     *
     * @param {CreateCollectionRequest} [createCollectionRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    createCollection(createCollectionRequest?: CreateCollectionRequest, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<CreateCollectionResponse>>;
    /**
     *
     * @param {number} userId
     * @param {number} id
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    deleteCollaborator(userId: number, id: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<SimpleResponse>>;
    /**
     *
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    emptyTrash(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<SimpleResponse>>;
    /**
     *
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getChildCollections(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<GetChildCollectionsResponse>>;
    /**
     *
     * @param {number} id
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getCollaborators(id: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>>;
    /**
     *
     * @param {number} id
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getCollection(id: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<GetCollectionResponse>>;
    /**
     *
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getFeaturedCovers(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<GetFeaturedCoversResponse>>;
    /**
     *
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getRootCollections(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<GetRootCollectionsResponse>>;
    /**
     *
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getSystemCollectionStats(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<GetSystemCollectionStatsResponse>>;
    /**
     *
     * @param {MergeCollectionsRequest} [mergeCollectionsRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    mergeCollections(mergeCollectionsRequest?: MergeCollectionsRequest, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<MergeCollectionsResponse>>;
    /**
     *
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    removeAllEmptyCollections(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<RemoveAllEmptyCollectionsResponse>>;
    /**
     *
     * @param {number} id
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    removeCollection(id: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<SimpleResponse>>;
    /**
     *
     * @param {RemoveCollectionsRequest} [removeCollectionsRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    removeCollections(removeCollectionsRequest?: RemoveCollectionsRequest, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<RemoveCollectionsResponse>>;
    /**
     *
     * @param {ReorderAllCollectionsRequest} [reorderAllCollectionsRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    reorderAllCollections(reorderAllCollectionsRequest?: ReorderAllCollectionsRequest, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<SimpleResponse>>;
    /**
     *
     * @param {string} text
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    searchCovers(text: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<SearchCoversResponse>>;
    /**
     *
     * @param {number} id
     * @param {ShareCollectionRequest} [shareCollectionRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    shareCollection(id: number, shareCollectionRequest?: ShareCollectionRequest, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ShareCollectionResponse>>;
    /**
     *
     * @param {number} id
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    unshareOrLeaveCollection(id: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<SimpleResponse>>;
    /**
     *
     * @param {number} id
     * @param {UpdateCollectionRequest} [updateCollectionRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    updateCollection(id: number, updateCollectionRequest?: UpdateCollectionRequest, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<UpdateCollectionResponse>>;
    /**
     *
     * @param {number} id
     * @param {File} [cover]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    uploadCollectionCover(id: number, cover?: File, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<UploadCollectionCoverResponse>>;
};

declare type CollectionItem = GetRootCollectionsResponseItem | GetChildCollectionsResponseItem;

/**
 *
 * @export
 * @interface CollectionRef
 */
declare interface CollectionRef {
    /**
     *
     * @type {string}
     * @memberof CollectionRef
     */
    '$ref': CollectionRefRefEnum;
    /**
     *
     * @type {number}
     * @memberof CollectionRef
     */
    '$id': number;
    /**
     *
     * @type {number}
     * @memberof CollectionRef
     */
    'oid'?: number;
}

declare const CollectionRefRefEnum: {
    readonly Collections: "collections";
};

declare type CollectionRefRefEnum = typeof CollectionRefRefEnum[keyof typeof CollectionRefRefEnum];

declare class Configuration {
    /**
     * parameter for apiKey security
     * @param name security name
     * @memberof Configuration
     */
    apiKey?: string | Promise<string> | ((name: string) => string) | ((name: string) => Promise<string>);
    /**
     * parameter for basic security
     *
     * @type {string}
     * @memberof Configuration
     */
    username?: string;
    /**
     * parameter for basic security
     *
     * @type {string}
     * @memberof Configuration
     */
    password?: string;
    /**
     * parameter for oauth2 security
     * @param name security name
     * @param scopes oauth2 scope
     * @memberof Configuration
     */
    accessToken?: string | Promise<string> | ((name?: string, scopes?: string[]) => string) | ((name?: string, scopes?: string[]) => Promise<string>);
    /**
     * override base path
     *
     * @type {string}
     * @memberof Configuration
     */
    basePath?: string;
    /**
     * override server index
     *
     * @type {number}
     * @memberof Configuration
     */
    serverIndex?: number;
    /**
     * base options for axios calls
     *
     * @type {any}
     * @memberof Configuration
     */
    baseOptions?: any;
    /**
     * The FormData constructor that will be used to create multipart form data
     * requests. You can inject this here so that execution environments that
     * do not support the FormData class can still run the generated client.
     *
     * @type {new () => FormData}
     */
    formDataCtor?: new () => any;
    constructor(param?: ConfigurationParameters);
    /**
     * Check if the given MIME is a JSON MIME.
     * JSON MIME examples:
     *   application/json
     *   application/json; charset=UTF8
     *   APPLICATION/JSON
     *   application/vnd.company+json
     * @param mime - MIME (Multipurpose Internet Mail Extensions)
     * @return True if the given MIME is JSON, false otherwise.
     */
    isJsonMime(mime: string): boolean;
}

/**
 * Raindrop API (Unofficial)
 * **UNOFFICIAL** OpenAPI specification of Raindrop API.  This OpenAPI spec has been made by hand with reference to official documentation because it is not provided by Raindrop.io.  Because official documentation not maintained well, there are very (highly) likely to have mismatch in schemas. As we can\'t inspect and address all issues, schema being updated as we find issues.  Any contributions are welcome. Bug report, schema update, adding descriptions or functions, please don\'t hesitate to create an issue.
 *
 * The version of the OpenAPI document: 0.1.0
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
declare interface ConfigurationParameters {
    apiKey?: string | Promise<string> | ((name: string) => string) | ((name: string) => Promise<string>);
    username?: string;
    password?: string;
    accessToken?: string | Promise<string> | ((name?: string, scopes?: string[]) => string) | ((name?: string, scopes?: string[]) => Promise<string>);
    basePath?: string;
    serverIndex?: number;
    baseOptions?: any;
    formDataCtor?: new () => any;
}

/**
 * @export
 */
declare const ConnectSocialNetworkProviderProviderEnum: {
    readonly Facebook: "facebook";
    readonly Google: "google";
    readonly Twitter: "twitter";
    readonly Vkontate: "vkontate";
    readonly Dropbox: "dropbox";
    readonly Gdrive: "gdrive";
};

declare type ConnectSocialNetworkProviderProviderEnum = typeof ConnectSocialNetworkProviderProviderEnum[keyof typeof ConnectSocialNetworkProviderProviderEnum];

/**
 *
 * @export
 * @interface CreateCollectionRequest
 */
declare interface CreateCollectionRequest {
    /**
     *
     * @type {string}
     * @memberof CreateCollectionRequest
     */
    'view': string;
    /**
     *
     * @type {string}
     * @memberof CreateCollectionRequest
     */
    'title': string;
    /**
     *
     * @type {number}
     * @memberof CreateCollectionRequest
     */
    'sort': number;
    /**
     *
     * @type {boolean}
     * @memberof CreateCollectionRequest
     */
    'public': boolean;
    /**
     *
     * @type {CollectionRef}
     * @memberof CreateCollectionRequest
     */
    'parent'?: CollectionRef | null;
    /**
     *
     * @type {Array<string>}
     * @memberof CreateCollectionRequest
     */
    'cover': Array<string>;
}

/**
 *
 * @export
 * @interface CreateCollectionResponse
 */
declare interface CreateCollectionResponse {
    /**
     *
     * @type {boolean}
     * @memberof CreateCollectionResponse
     */
    'result': boolean;
    /**
     *
     * @type {CreateCollectionResponseItem}
     * @memberof CreateCollectionResponse
     */
    'item': CreateCollectionResponseItem;
}

/**
 *
 * @export
 * @interface CreateCollectionResponseItem
 */
declare interface CreateCollectionResponseItem {
    /**
     *
     * @type {number}
     * @memberof CreateCollectionResponseItem
     */
    '_id': number;
    /**
     *
     * @type {string}
     * @memberof CreateCollectionResponseItem
     */
    'title': string;
    /**
     *
     * @type {string}
     * @memberof CreateCollectionResponseItem
     */
    'description': string;
    /**
     *
     * @type {UserRef}
     * @memberof CreateCollectionResponseItem
     */
    'user': UserRef;
    /**
     *
     * @type {boolean}
     * @memberof CreateCollectionResponseItem
     */
    'public': boolean;
    /**
     *
     * @type {string}
     * @memberof CreateCollectionResponseItem
     */
    'view': string;
    /**
     *
     * @type {number}
     * @memberof CreateCollectionResponseItem
     */
    'count': number;
    /**
     *
     * @type {Array<string>}
     * @memberof CreateCollectionResponseItem
     */
    'cover': Array<string>;
    /**
     *
     * @type {number}
     * @memberof CreateCollectionResponseItem
     */
    'sort': number;
    /**
     *
     * @type {boolean}
     * @memberof CreateCollectionResponseItem
     */
    'expanded': boolean;
    /**
     *
     * @type {number}
     * @memberof CreateCollectionResponseItem
     */
    'creatorRef': number;
    /**
     *
     * @type {string}
     * @memberof CreateCollectionResponseItem
     */
    'lastAction': string;
    /**
     *
     * @type {string}
     * @memberof CreateCollectionResponseItem
     */
    'created': string;
    /**
     *
     * @type {string}
     * @memberof CreateCollectionResponseItem
     */
    'lastUpdate': string;
    /**
     *
     * @type {string}
     * @memberof CreateCollectionResponseItem
     */
    'slug': string;
    /**
     *
     * @type {string}
     * @memberof CreateCollectionResponseItem
     */
    'color'?: string;
    /**
     *
     * @type {CollectionAccess}
     * @memberof CreateCollectionResponseItem
     */
    'access': CollectionAccess;
    /**
     *
     * @type {boolean}
     * @memberof CreateCollectionResponseItem
     */
    'author': boolean;
    /**
     *
     * @type {object}
     * @memberof CreateCollectionResponseItem
     */
    'parent': object | null;
    /**
     *
     * @type {number}
     * @memberof CreateCollectionResponseItem
     */
    '__v': number;
}

/**
 *
 * @export
 * @interface CreateRaindropRequest
 */
declare interface CreateRaindropRequest {
    /**
     *
     * @type {object}
     * @memberof CreateRaindropRequest
     */
    'pleaseParse'?: object;
    /**
     *
     * @type {string}
     * @memberof CreateRaindropRequest
     */
    'created'?: string;
    /**
     *
     * @type {string}
     * @memberof CreateRaindropRequest
     */
    'lastUpdate'?: string;
    /**
     *
     * @type {number}
     * @memberof CreateRaindropRequest
     */
    'order'?: number;
    /**
     *
     * @type {boolean}
     * @memberof CreateRaindropRequest
     */
    'important'?: boolean;
    /**
     *
     * @type {Array<string>}
     * @memberof CreateRaindropRequest
     */
    'tags'?: Array<string>;
    /**
     *
     * @type {Array<ParseURLResponseItemMediaInner>}
     * @memberof CreateRaindropRequest
     */
    'media'?: Array<ParseURLResponseItemMediaInner>;
    /**
     *
     * @type {string}
     * @memberof CreateRaindropRequest
     */
    'cover'?: string;
    /**
     *
     * @type {CreateRaindropRequestCollection}
     * @memberof CreateRaindropRequest
     */
    'collection'?: CreateRaindropRequestCollection;
    /**
     *
     * @type {string}
     * @memberof CreateRaindropRequest
     */
    'type'?: string;
    /**
     *
     * @type {string}
     * @memberof CreateRaindropRequest
     */
    'excerpt'?: string;
    /**
     *
     * @type {string}
     * @memberof CreateRaindropRequest
     */
    'title'?: string;
    /**
     *
     * @type {string}
     * @memberof CreateRaindropRequest
     */
    'link': string;
    /**
     *
     * @type {Array<CreateRaindropRequestHighlightsInner>}
     * @memberof CreateRaindropRequest
     */
    'highlights'?: Array<CreateRaindropRequestHighlightsInner>;
    /**
     *
     * @type {object}
     * @memberof CreateRaindropRequest
     */
    'reminder'?: object;
}

/**
 *
 * @export
 * @interface CreateRaindropRequestCollection
 */
declare interface CreateRaindropRequestCollection {
    /**
     *
     * @type {number}
     * @memberof CreateRaindropRequestCollection
     */
    '$id': number;
}

/**
 *
 * @export
 * @interface CreateRaindropRequestHighlightsInner
 */
declare interface CreateRaindropRequestHighlightsInner {
    /**
     *
     * @type {string}
     * @memberof CreateRaindropRequestHighlightsInner
     */
    'text': string;
    /**
     *
     * @type {string}
     * @memberof CreateRaindropRequestHighlightsInner
     */
    'note': string;
}

/**
 *
 * @export
 * @interface CreateRaindropResponse
 */
declare interface CreateRaindropResponse {
    /**
     *
     * @type {boolean}
     * @memberof CreateRaindropResponse
     */
    'result': boolean;
    /**
     *
     * @type {CreateRaindropResponseItem}
     * @memberof CreateRaindropResponse
     */
    'item': CreateRaindropResponseItem;
}

/**
 *
 * @export
 * @interface CreateRaindropResponseItem
 */
declare interface CreateRaindropResponseItem {
    /**
     *
     * @type {number}
     * @memberof CreateRaindropResponseItem
     */
    '__v': number;
    /**
     *
     * @type {number}
     * @memberof CreateRaindropResponseItem
     */
    '_id': number;
    /**
     *
     * @type {CollectionRef}
     * @memberof CreateRaindropResponseItem
     */
    'collection': CollectionRef | null;
    /**
     *
     * @type {number}
     * @memberof CreateRaindropResponseItem
     */
    'collectionId': number;
    /**
     *
     * @type {string}
     * @memberof CreateRaindropResponseItem
     */
    'cover': string;
    /**
     *
     * @type {string}
     * @memberof CreateRaindropResponseItem
     */
    'created': string;
    /**
     *
     * @type {CreatorRef}
     * @memberof CreateRaindropResponseItem
     */
    'creatorRef': CreatorRef;
    /**
     *
     * @type {string}
     * @memberof CreateRaindropResponseItem
     */
    'domain': string;
    /**
     *
     * @type {string}
     * @memberof CreateRaindropResponseItem
     */
    'excerpt': string;
    /**
     *
     * @type {string}
     * @memberof CreateRaindropResponseItem
     */
    'lastUpdate': string;
    /**
     *
     * @type {string}
     * @memberof CreateRaindropResponseItem
     */
    'link': string;
    /**
     *
     * @type {Array<CreateRaindropResponseItemMediaInner>}
     * @memberof CreateRaindropResponseItem
     */
    'media': Array<CreateRaindropResponseItemMediaInner>;
    /**
     *
     * @type {string}
     * @memberof CreateRaindropResponseItem
     */
    'note': string;
    /**
     *
     * @type {boolean}
     * @memberof CreateRaindropResponseItem
     */
    'removed': boolean;
    /**
     *
     * @type {number}
     * @memberof CreateRaindropResponseItem
     */
    'sort': number;
    /**
     *
     * @type {Array<string>}
     * @memberof CreateRaindropResponseItem
     */
    'tags': Array<string>;
    /**
     *
     * @type {string}
     * @memberof CreateRaindropResponseItem
     */
    'title': string;
    /**
     *
     * @type {string}
     * @memberof CreateRaindropResponseItem
     */
    'type': string;
    /**
     *
     * @type {UserRef}
     * @memberof CreateRaindropResponseItem
     */
    'user': UserRef;
}

/**
 *
 * @export
 * @interface CreateRaindropResponseItemMediaInner
 */
declare interface CreateRaindropResponseItemMediaInner {
    /**
     *
     * @type {string}
     * @memberof CreateRaindropResponseItemMediaInner
     */
    'link': string;
    /**
     *
     * @type {string}
     * @memberof CreateRaindropResponseItemMediaInner
     */
    'type': string;
}

/**
 *
 * @export
 * @interface CreateRaindropsResponse
 */
declare interface CreateRaindropsResponse {
    /**
     *
     * @type {boolean}
     * @memberof CreateRaindropsResponse
     */
    'result': boolean;
    /**
     *
     * @type {Array<UpdateRaindropResponseItem>}
     * @memberof CreateRaindropsResponse
     */
    'items': Array<UpdateRaindropResponseItem>;
}

/**
 * @type CreatorRef
 * @export
 */
declare type CreatorRef = CreatorRefOneOf | number;

/**
 *
 * @export
 * @interface CreatorRefOneOf
 */
declare interface CreatorRefOneOf {
    /**
     *
     * @type {number}
     * @memberof CreatorRefOneOf
     */
    '_id': number;
    /**
     *
     * @type {string}
     * @memberof CreatorRefOneOf
     */
    'name': string;
    /**
     *
     * @type {string}
     * @memberof CreatorRefOneOf
     */
    'email': string;
    /**
     *
     * @type {string}
     * @memberof CreatorRefOneOf
     */
    'avatar'?: string;
}

declare const _default: typeof client.Raindrop;
export default _default;

/**
 * @export
 */
declare const DisconnectSocialNetworkProviderProviderEnum: {
    readonly Facebook: "facebook";
    readonly Google: "google";
    readonly Twitter: "twitter";
    readonly Vkontate: "vkontate";
    readonly Dropbox: "dropbox";
    readonly Gdrive: "gdrive";
};

declare type DisconnectSocialNetworkProviderProviderEnum = typeof DisconnectSocialNetworkProviderProviderEnum[keyof typeof DisconnectSocialNetworkProviderProviderEnum];

/**
 * FilterApi - object-oriented interface
 * @export
 * @class FilterApi
 * @extends {BaseAPI}
 */
declare class FilterApi extends BaseAPI {
    /**
     *
     * @param {number} collectionId
     * @param {GetFiltersTagsSortEnum} [tagsSort]
     * @param {string} [search]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof FilterApi
     */
    getFilters(collectionId: number, tagsSort?: GetFiltersTagsSortEnum, search?: string, options?: RawAxiosRequestConfig): Promise<AxiosResponse<GetFiltersResponse, any>>;
}

/**
 * FilterApi - axios parameter creator
 * @export
 */
declare const FilterApiAxiosParamCreator: (configuration?: Configuration) => {
    /**
     *
     * @param {number} collectionId
     * @param {GetFiltersTagsSortEnum} [tagsSort]
     * @param {string} [search]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getFilters: (collectionId: number, tagsSort?: GetFiltersTagsSortEnum, search?: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
};

/**
 * FilterApi - factory interface
 * @export
 */
declare const FilterApiFactory: (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) => {
    /**
     *
     * @param {number} collectionId
     * @param {GetFiltersTagsSortEnum} [tagsSort]
     * @param {string} [search]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getFilters(collectionId: number, tagsSort?: GetFiltersTagsSortEnum, search?: string, options?: any): AxiosPromise<GetFiltersResponse>;
};

/**
 * FilterApi - functional programming interface
 * @export
 */
declare const FilterApiFp: (configuration?: Configuration) => {
    /**
     *
     * @param {number} collectionId
     * @param {GetFiltersTagsSortEnum} [tagsSort]
     * @param {string} [search]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getFilters(collectionId: number, tagsSort?: GetFiltersTagsSortEnum, search?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<GetFiltersResponse>>;
};

declare namespace generated {
    export {
        AcceptInvitation200Response,
        ChangeCollaboratorAccessLevelRequest,
        CheckURLsExistRequest,
        CheckURLsExistResponse,
        CheckURLsExistResponseDuplicatesInner,
        Collection,
        CollectionAccess,
        CollectionRef,
        CollectionRefRefEnum,
        CreateCollectionRequest,
        CreateCollectionResponse,
        CreateCollectionResponseItem,
        CreateRaindropRequest,
        CreateRaindropRequestCollection,
        CreateRaindropRequestHighlightsInner,
        CreateRaindropResponse,
        CreateRaindropResponseItem,
        CreateRaindropResponseItemMediaInner,
        CreateRaindropsResponse,
        CreatorRef,
        CreatorRefOneOf,
        GetAllHighlightsResponse,
        GetAllHighlightsResponseItemsInner,
        GetChildCollectionsResponse,
        GetChildCollectionsResponseItemsInner,
        GetCollectionResponse,
        GetCurrentUserResponse,
        GetFeaturedCoversResponse,
        GetFeaturedCoversResponseItemsInner,
        GetFiltersResponse,
        GetFiltersResponseCreatedInner,
        GetHighlightsInCollectionResponse,
        GetOrRefreshToken200Response,
        GetOrRefreshTokenRequest,
        GetPublicUserByNameResponse,
        GetPublicUserByNameResponseUser,
        GetPublicUserByNameResponseUserConfig,
        GetRaindropResponse,
        GetRaindropResponseItem,
        GetRaindropResponseItemHighlightsInner,
        GetRaindropsResponse,
        GetRootCollectionsResponse,
        GetSystemCollectionStatsResponse,
        GetSystemCollectionStatsResponseItemsInner,
        GetSystemCollectionStatsResponseMeta,
        GetTagsInCollectionResponse,
        Group,
        ImportHTMLBookmarkFileResponse,
        ImportHTMLBookmarkFileResponseCount,
        ImportHTMLBookmarkFileResponseItemBookmark,
        ImportHTMLBookmarkFileResponseItemFolder,
        MergeCollectionsRequest,
        MergeCollectionsResponse,
        ObtainToken,
        ObtainTokenGrantTypeEnum,
        ParseURLResponse,
        ParseURLResponseItem,
        ParseURLResponseItemMediaInner,
        ParseURLResponseItemMeta,
        RefreshToken,
        RefreshTokenGrantTypeEnum,
        RemoveAllEmptyCollectionsResponse,
        RemoveCollectionsRequest,
        RemoveCollectionsResponse,
        RemoveRaindropResponse,
        RemoveRaindropResponseItem,
        RemoveRaindropsRequest,
        RemoveRaindropsResponse,
        RemoveTagsFromCollectionRequest,
        RenameOrMergeTagsRequest,
        ReorderAllCollectionsRequest,
        Role,
        SearchCoversResponse,
        SearchCoversResponseItemsInner,
        SearchCoversResponseItemsInnerIconsInner,
        ShareCollectionRequest,
        ShareCollectionResponse,
        SimpleResponse,
        SuggestForExistingBookmarkResponse,
        SuggestForNewBookmarkRequest,
        SuggestForNewBookmarkResponse,
        TokenErrorResponse,
        TokenResponse,
        TokenResponseTokenTypeEnum,
        UpdateCollectionRequest,
        UpdateCollectionResponse,
        UpdateCurrentUserRequest,
        UpdateCurrentUserRequestGroupsInner,
        UpdateCurrentUserResponse,
        UpdateCurrentUserResponseUser,
        UpdateRaindropResponse,
        UpdateRaindropResponseItem,
        UpdateRaindropsRequest,
        UpdateRaindropsRequestCollection,
        UpdateRaindropsResponse,
        UploadCollectionCoverResponse,
        UploadCollectionCoverResponseItem,
        UploadFileResponse,
        UploadFileResponseItem,
        UploadFileResponseItemFile,
        UploadRaindropCoverResponse,
        UploadRaindropCoverResponseItem,
        User,
        UserConfig,
        UserDropbox,
        UserFiles,
        UserRef,
        UserTfa,
        AuthenticationApiAxiosParamCreator,
        AuthenticationApiFp,
        AuthenticationApiFactory,
        AuthenticationApi_2 as AuthenticationApi,
        CollectionApiAxiosParamCreator,
        CollectionApiFp,
        CollectionApiFactory,
        CollectionApi_2 as CollectionApi,
        FilterApiAxiosParamCreator,
        FilterApiFp,
        FilterApiFactory,
        FilterApi,
        GetFiltersTagsSortEnum,
        HighlightApiAxiosParamCreator,
        HighlightApiFp,
        HighlightApiFactory,
        HighlightApi,
        ImportApiAxiosParamCreator,
        ImportApiFp,
        ImportApiFactory,
        ImportApi,
        RaindropApiAxiosParamCreator,
        RaindropApiFp,
        RaindropApiFactory,
        RaindropApi_2 as RaindropApi,
        TagApiAxiosParamCreator,
        TagApiFp,
        TagApiFactory,
        TagApi,
        UserApiAxiosParamCreator,
        UserApiFp,
        UserApiFactory,
        UserApi,
        ConnectSocialNetworkProviderProviderEnum,
        DisconnectSocialNetworkProviderProviderEnum,
        ConfigurationParameters,
        Configuration
    }
}
export { generated }

/**
 *
 * @export
 * @interface GetAllHighlightsResponse
 */
declare interface GetAllHighlightsResponse {
    /**
     *
     * @type {boolean}
     * @memberof GetAllHighlightsResponse
     */
    'result': boolean;
    /**
     *
     * @type {Array<GetAllHighlightsResponseItemsInner>}
     * @memberof GetAllHighlightsResponse
     */
    'items': Array<GetAllHighlightsResponseItemsInner>;
}

/**
 *
 * @export
 * @interface GetAllHighlightsResponseItemsInner
 */
declare interface GetAllHighlightsResponseItemsInner {
    /**
     *
     * @type {string}
     * @memberof GetAllHighlightsResponseItemsInner
     */
    'link': string;
    /**
     *
     * @type {string}
     * @memberof GetAllHighlightsResponseItemsInner
     */
    'title': string;
    /**
     *
     * @type {Array<string>}
     * @memberof GetAllHighlightsResponseItemsInner
     */
    'tags': Array<string>;
    /**
     *
     * @type {string}
     * @memberof GetAllHighlightsResponseItemsInner
     */
    '_id': string;
    /**
     *
     * @type {string}
     * @memberof GetAllHighlightsResponseItemsInner
     */
    'text': string;
    /**
     *
     * @type {string}
     * @memberof GetAllHighlightsResponseItemsInner
     */
    'note': string;
    /**
     *
     * @type {string}
     * @memberof GetAllHighlightsResponseItemsInner
     */
    'created': string;
    /**
     *
     * @type {number}
     * @memberof GetAllHighlightsResponseItemsInner
     */
    'raindropRef': number;
}

declare interface GetAllRaindropsParams {
    /** Sort option. See https://developer.raindrop.io/v1/raindrops/multiple#common-parameters */
    sort?: string;
    /** Size of per page to fetch. Maximum 50 limited by Raindrop.io */
    pageSize?: number;
    /** Search query. See details at https://help.raindrop.io/using-search/ */
    search?: string;
}

/**
 *
 * @export
 * @interface GetChildCollectionsResponse
 */
declare interface GetChildCollectionsResponse {
    /**
     *
     * @type {boolean}
     * @memberof GetChildCollectionsResponse
     */
    'result': boolean;
    /**
     *
     * @type {Array<GetChildCollectionsResponseItemsInner>}
     * @memberof GetChildCollectionsResponse
     */
    'items': Array<GetChildCollectionsResponseItemsInner>;
}

declare type GetChildCollectionsResponseItem = GetChildCollectionsResponse["items"][0];

/**
 *
 * @export
 * @interface GetChildCollectionsResponseItemsInner
 */
declare interface GetChildCollectionsResponseItemsInner {
    /**
     *
     * @type {number}
     * @memberof GetChildCollectionsResponseItemsInner
     */
    '_id': number;
    /**
     *
     * @type {string}
     * @memberof GetChildCollectionsResponseItemsInner
     */
    'title': string;
    /**
     *
     * @type {string}
     * @memberof GetChildCollectionsResponseItemsInner
     */
    'description': string;
    /**
     *
     * @type {UserRef}
     * @memberof GetChildCollectionsResponseItemsInner
     */
    'user': UserRef;
    /**
     *
     * @type {boolean}
     * @memberof GetChildCollectionsResponseItemsInner
     */
    'public': boolean;
    /**
     *
     * @type {string}
     * @memberof GetChildCollectionsResponseItemsInner
     */
    'view': string;
    /**
     *
     * @type {number}
     * @memberof GetChildCollectionsResponseItemsInner
     */
    'count': number;
    /**
     *
     * @type {Array<string>}
     * @memberof GetChildCollectionsResponseItemsInner
     */
    'cover': Array<string>;
    /**
     *
     * @type {number}
     * @memberof GetChildCollectionsResponseItemsInner
     */
    'sort': number;
    /**
     *
     * @type {boolean}
     * @memberof GetChildCollectionsResponseItemsInner
     */
    'expanded': boolean;
    /**
     *
     * @type {CreatorRef}
     * @memberof GetChildCollectionsResponseItemsInner
     */
    'creatorRef': CreatorRef;
    /**
     *
     * @type {string}
     * @memberof GetChildCollectionsResponseItemsInner
     */
    'lastAction': string;
    /**
     *
     * @type {string}
     * @memberof GetChildCollectionsResponseItemsInner
     */
    'created': string;
    /**
     *
     * @type {string}
     * @memberof GetChildCollectionsResponseItemsInner
     */
    'lastUpdate': string;
    /**
     *
     * @type {string}
     * @memberof GetChildCollectionsResponseItemsInner
     */
    'slug': string;
    /**
     *
     * @type {string}
     * @memberof GetChildCollectionsResponseItemsInner
     */
    'color'?: string;
    /**
     *
     * @type {CollectionAccess}
     * @memberof GetChildCollectionsResponseItemsInner
     */
    'access': CollectionAccess;
    /**
     *
     * @type {boolean}
     * @memberof GetChildCollectionsResponseItemsInner
     */
    'author': boolean;
    /**
     *
     * @type {CollectionRef}
     * @memberof GetChildCollectionsResponseItemsInner
     */
    'parent': CollectionRef | null;
}

/**
 *
 * @export
 * @interface GetCollectionResponse
 */
declare interface GetCollectionResponse {
    /**
     *
     * @type {boolean}
     * @memberof GetCollectionResponse
     */
    'result'?: boolean;
    /**
     *
     * @type {Collection}
     * @memberof GetCollectionResponse
     */
    'item'?: Collection;
}

/**
 *
 * @export
 * @interface GetCurrentUserResponse
 */
declare interface GetCurrentUserResponse {
    /**
     *
     * @type {boolean}
     * @memberof GetCurrentUserResponse
     */
    'result': boolean;
    /**
     *
     * @type {User}
     * @memberof GetCurrentUserResponse
     */
    'user': User;
}

/**
 *
 * @export
 * @interface GetFeaturedCoversResponse
 */
declare interface GetFeaturedCoversResponse {
    /**
     *
     * @type {boolean}
     * @memberof GetFeaturedCoversResponse
     */
    'result': boolean;
    /**
     *
     * @type {Array<GetFeaturedCoversResponseItemsInner>}
     * @memberof GetFeaturedCoversResponse
     */
    'items': Array<GetFeaturedCoversResponseItemsInner>;
}

/**
 *
 * @export
 * @interface GetFeaturedCoversResponseItemsInner
 */
declare interface GetFeaturedCoversResponseItemsInner {
    /**
     *
     * @type {string}
     * @memberof GetFeaturedCoversResponseItemsInner
     */
    'title': string;
    /**
     *
     * @type {string}
     * @memberof GetFeaturedCoversResponseItemsInner
     */
    'link'?: string;
    /**
     *
     * @type {number}
     * @memberof GetFeaturedCoversResponseItemsInner
     */
    'sort'?: number;
    /**
     *
     * @type {Array<SearchCoversResponseItemsInnerIconsInner>}
     * @memberof GetFeaturedCoversResponseItemsInner
     */
    'icons': Array<SearchCoversResponseItemsInnerIconsInner>;
}

/**
 *
 * @export
 * @interface GetFiltersResponse
 */
declare interface GetFiltersResponse {
    [key: string]: GetFiltersResponseCreatedInner | any;
    /**
     *
     * @type {boolean}
     * @memberof GetFiltersResponse
     */
    'result': boolean;
    /**
     *
     * @type {number}
     * @memberof GetFiltersResponse
     */
    'collectionId': number;
    /**
     *
     * @type {Array<GetFiltersResponseCreatedInner>}
     * @memberof GetFiltersResponse
     */
    'created': Array<GetFiltersResponseCreatedInner>;
    /**
     *
     * @type {Array<GetFiltersResponseCreatedInner>}
     * @memberof GetFiltersResponse
     */
    'tags': Array<GetFiltersResponseCreatedInner>;
    /**
     *
     * @type {Array<GetFiltersResponseCreatedInner>}
     * @memberof GetFiltersResponse
     */
    'types': Array<GetFiltersResponseCreatedInner>;
}

/**
 *
 * @export
 * @interface GetFiltersResponseCreatedInner
 */
declare interface GetFiltersResponseCreatedInner {
    /**
     *
     * @type {string}
     * @memberof GetFiltersResponseCreatedInner
     */
    '_id': string;
    /**
     *
     * @type {number}
     * @memberof GetFiltersResponseCreatedInner
     */
    'count': number;
}

/**
 * @export
 */
declare const GetFiltersTagsSortEnum: {
    readonly MinusCount: "-count";
    readonly Id: "_id";
};

declare type GetFiltersTagsSortEnum = typeof GetFiltersTagsSortEnum[keyof typeof GetFiltersTagsSortEnum];

/**
 *
 * @export
 * @interface GetHighlightsInCollectionResponse
 */
declare interface GetHighlightsInCollectionResponse {
    /**
     *
     * @type {boolean}
     * @memberof GetHighlightsInCollectionResponse
     */
    'result': boolean;
    /**
     *
     * @type {Array<GetAllHighlightsResponseItemsInner>}
     * @memberof GetHighlightsInCollectionResponse
     */
    'items': Array<GetAllHighlightsResponseItemsInner>;
}

/**
 * @type GetOrRefreshToken200Response
 * @export
 */
declare type GetOrRefreshToken200Response = TokenErrorResponse | TokenResponse;

/**
 * @type GetOrRefreshTokenRequest
 * @export
 */
declare type GetOrRefreshTokenRequest = ObtainToken | RefreshToken;

/**
 *
 * @export
 * @interface GetPublicUserByNameResponse
 */
declare interface GetPublicUserByNameResponse {
    /**
     *
     * @type {boolean}
     * @memberof GetPublicUserByNameResponse
     */
    'result': boolean;
    /**
     *
     * @type {GetPublicUserByNameResponseUser}
     * @memberof GetPublicUserByNameResponse
     */
    'user': GetPublicUserByNameResponseUser;
}

/**
 *
 * @export
 * @interface GetPublicUserByNameResponseUser
 */
declare interface GetPublicUserByNameResponseUser {
    /**
     *
     * @type {number}
     * @memberof GetPublicUserByNameResponseUser
     */
    '_id': number;
    /**
     *
     * @type {string}
     * @memberof GetPublicUserByNameResponseUser
     */
    'fullName': string;
    /**
     *
     * @type {string}
     * @memberof GetPublicUserByNameResponseUser
     */
    'name': string;
    /**
     *
     * @type {string}
     * @memberof GetPublicUserByNameResponseUser
     */
    'email': string;
    /**
     *
     * @type {string}
     * @memberof GetPublicUserByNameResponseUser
     */
    'avatar': string;
    /**
     *
     * @type {boolean}
     * @memberof GetPublicUserByNameResponseUser
     */
    'pro': boolean;
    /**
     *
     * @type {string}
     * @memberof GetPublicUserByNameResponseUser
     */
    'lastAction': string;
    /**
     *
     * @type {string}
     * @memberof GetPublicUserByNameResponseUser
     */
    'registered': string;
    /**
     *
     * @type {string}
     * @memberof GetPublicUserByNameResponseUser
     */
    'lastUpdate': string;
    /**
     *
     * @type {GetPublicUserByNameResponseUserConfig}
     * @memberof GetPublicUserByNameResponseUser
     */
    'config': GetPublicUserByNameResponseUserConfig;
}

/**
 *
 * @export
 * @interface GetPublicUserByNameResponseUserConfig
 */
declare interface GetPublicUserByNameResponseUserConfig {
    /**
     *
     * @type {Array<string>}
     * @memberof GetPublicUserByNameResponseUserConfig
     */
    'raindrops_hide': Array<string>;
    /**
     *
     * @type {boolean}
     * @memberof GetPublicUserByNameResponseUserConfig
     */
    'nested_view_legacy': boolean;
}

/**
 *
 * @export
 * @interface GetRaindropResponse
 */
declare interface GetRaindropResponse {
    /**
     *
     * @type {boolean}
     * @memberof GetRaindropResponse
     */
    'result': boolean;
    /**
     *
     * @type {boolean}
     * @memberof GetRaindropResponse
     */
    'author': boolean;
    /**
     *
     * @type {GetRaindropResponseItem}
     * @memberof GetRaindropResponse
     */
    'item': GetRaindropResponseItem;
}

/**
 *
 * @export
 * @interface GetRaindropResponseItem
 */
declare interface GetRaindropResponseItem {
    /**
     *
     * @type {number}
     * @memberof GetRaindropResponseItem
     */
    '_id': number;
    /**
     *
     * @type {CollectionRef}
     * @memberof GetRaindropResponseItem
     */
    'collection': CollectionRef | null;
    /**
     *
     * @type {number}
     * @memberof GetRaindropResponseItem
     */
    'collectionId': number;
    /**
     *
     * @type {string}
     * @memberof GetRaindropResponseItem
     */
    'cover': string;
    /**
     *
     * @type {string}
     * @memberof GetRaindropResponseItem
     */
    'created': string;
    /**
     *
     * @type {CreatorRef}
     * @memberof GetRaindropResponseItem
     */
    'creatorRef': CreatorRef;
    /**
     *
     * @type {string}
     * @memberof GetRaindropResponseItem
     */
    'domain': string;
    /**
     *
     * @type {string}
     * @memberof GetRaindropResponseItem
     */
    'excerpt': string;
    /**
     *
     * @type {Array<GetRaindropResponseItemHighlightsInner>}
     * @memberof GetRaindropResponseItem
     */
    'highlights': Array<GetRaindropResponseItemHighlightsInner>;
    /**
     *
     * @type {string}
     * @memberof GetRaindropResponseItem
     */
    'lastUpdate': string;
    /**
     *
     * @type {string}
     * @memberof GetRaindropResponseItem
     */
    'link': string;
    /**
     *
     * @type {Array<CreateRaindropResponseItemMediaInner>}
     * @memberof GetRaindropResponseItem
     */
    'media': Array<CreateRaindropResponseItemMediaInner>;
    /**
     *
     * @type {string}
     * @memberof GetRaindropResponseItem
     */
    'note': string;
    /**
     *
     * @type {boolean}
     * @memberof GetRaindropResponseItem
     */
    'removed': boolean;
    /**
     *
     * @type {number}
     * @memberof GetRaindropResponseItem
     */
    'sort': number;
    /**
     *
     * @type {Array<string>}
     * @memberof GetRaindropResponseItem
     */
    'tags': Array<string>;
    /**
     *
     * @type {string}
     * @memberof GetRaindropResponseItem
     */
    'title': string;
    /**
     *
     * @type {string}
     * @memberof GetRaindropResponseItem
     */
    'type': string;
    /**
     *
     * @type {UserRef}
     * @memberof GetRaindropResponseItem
     */
    'user': UserRef;
}

/**
 *
 * @export
 * @interface GetRaindropResponseItemHighlightsInner
 */
declare interface GetRaindropResponseItemHighlightsInner {
    /**
     *
     * @type {string}
     * @memberof GetRaindropResponseItemHighlightsInner
     */
    'text': string;
    /**
     *
     * @type {string}
     * @memberof GetRaindropResponseItemHighlightsInner
     */
    'note': string;
    /**
     *
     * @type {string}
     * @memberof GetRaindropResponseItemHighlightsInner
     */
    'created': string;
    /**
     *
     * @type {string}
     * @memberof GetRaindropResponseItemHighlightsInner
     */
    'lastUpdate': string;
    /**
     *
     * @type {CreatorRef}
     * @memberof GetRaindropResponseItemHighlightsInner
     */
    'creatorRef': CreatorRef;
    /**
     *
     * @type {string}
     * @memberof GetRaindropResponseItemHighlightsInner
     */
    '_id': string;
}

/**
 *
 * @export
 * @interface GetRaindropsResponse
 */
declare interface GetRaindropsResponse {
    /**
     *
     * @type {boolean}
     * @memberof GetRaindropsResponse
     */
    'result': boolean;
    /**
     *
     * @type {number}
     * @memberof GetRaindropsResponse
     */
    'collectionId': number;
    /**
     *
     * @type {number}
     * @memberof GetRaindropsResponse
     */
    'count': number;
    /**
     *
     * @type {Array<GetRaindropResponseItem>}
     * @memberof GetRaindropsResponse
     */
    'items': Array<GetRaindropResponseItem>;
}

/**
 *
 * @export
 * @interface GetRootCollectionsResponse
 */
declare interface GetRootCollectionsResponse {
    /**
     *
     * @type {boolean}
     * @memberof GetRootCollectionsResponse
     */
    'result': boolean;
    /**
     *
     * @type {Array<Collection>}
     * @memberof GetRootCollectionsResponse
     */
    'items': Array<Collection>;
}

declare type GetRootCollectionsResponseItem = GetRootCollectionsResponse["items"][0];

/**
 *
 * @export
 * @interface GetSystemCollectionStatsResponse
 */
declare interface GetSystemCollectionStatsResponse {
    /**
     *
     * @type {boolean}
     * @memberof GetSystemCollectionStatsResponse
     */
    'result': boolean;
    /**
     *
     * @type {Array<GetSystemCollectionStatsResponseItemsInner>}
     * @memberof GetSystemCollectionStatsResponse
     */
    'items': Array<GetSystemCollectionStatsResponseItemsInner>;
    /**
     *
     * @type {GetSystemCollectionStatsResponseMeta}
     * @memberof GetSystemCollectionStatsResponse
     */
    'meta': GetSystemCollectionStatsResponseMeta;
}

/**
 *
 * @export
 * @interface GetSystemCollectionStatsResponseItemsInner
 */
declare interface GetSystemCollectionStatsResponseItemsInner {
    /**
     *
     * @type {number}
     * @memberof GetSystemCollectionStatsResponseItemsInner
     */
    'count': number;
    /**
     *
     * @type {number}
     * @memberof GetSystemCollectionStatsResponseItemsInner
     */
    '_id': number;
}

/**
 *
 * @export
 * @interface GetSystemCollectionStatsResponseMeta
 */
declare interface GetSystemCollectionStatsResponseMeta {
    /**
     *
     * @type {number}
     * @memberof GetSystemCollectionStatsResponseMeta
     */
    '_id': number;
    /**
     *
     * @type {boolean}
     * @memberof GetSystemCollectionStatsResponseMeta
     */
    'pro': boolean;
    /**
     *
     * @type {string}
     * @memberof GetSystemCollectionStatsResponseMeta
     */
    'changedBookmarksDate': string;
}

/**
 *
 * @export
 * @interface GetTagsInCollectionResponse
 */
declare interface GetTagsInCollectionResponse {
    /**
     *
     * @type {boolean}
     * @memberof GetTagsInCollectionResponse
     */
    'result': boolean;
    /**
     *
     * @type {Array<GetFiltersResponseCreatedInner>}
     * @memberof GetTagsInCollectionResponse
     */
    'items': Array<GetFiltersResponseCreatedInner>;
}

/**
 *
 * @export
 * @interface Group
 */
declare interface Group {
    /**
     *
     * @type {string}
     * @memberof Group
     */
    'title': string;
    /**
     *
     * @type {boolean}
     * @memberof Group
     */
    'hidden': boolean;
    /**
     *
     * @type {number}
     * @memberof Group
     */
    'sort': number;
    /**
     *
     * @type {Array<number>}
     * @memberof Group
     */
    'collections': Array<number>;
}

/**
 * HighlightApi - object-oriented interface
 * @export
 * @class HighlightApi
 * @extends {BaseAPI}
 */
declare class HighlightApi extends BaseAPI {
    /**
     *
     * @param {number} [page]
     * @param {number} [perpage]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof HighlightApi
     */
    getAllHighlights(page?: number, perpage?: number, options?: RawAxiosRequestConfig): Promise<AxiosResponse<GetAllHighlightsResponse, any>>;
    /**
     *
     * @param {number} collectionId
     * @param {number} [page]
     * @param {number} [perpage]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof HighlightApi
     */
    getHighlightsInCollection(collectionId: number, page?: number, perpage?: number, options?: RawAxiosRequestConfig): Promise<AxiosResponse<GetHighlightsInCollectionResponse, any>>;
    /**
     *
     * @param {number} id
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof HighlightApi
     */
    getRaindrop(id: number, options?: RawAxiosRequestConfig): Promise<AxiosResponse<GetRaindropResponse, any>>;
    /**
     *
     * @param {number} id
     * @param {object} [body]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof HighlightApi
     */
    updateRaindrop(id: number, body?: object, options?: RawAxiosRequestConfig): Promise<AxiosResponse<UpdateRaindropResponse, any>>;
}

/**
 * HighlightApi - axios parameter creator
 * @export
 */
declare const HighlightApiAxiosParamCreator: (configuration?: Configuration) => {
    /**
     *
     * @param {number} [page]
     * @param {number} [perpage]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getAllHighlights: (page?: number, perpage?: number, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     *
     * @param {number} collectionId
     * @param {number} [page]
     * @param {number} [perpage]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getHighlightsInCollection: (collectionId: number, page?: number, perpage?: number, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     *
     * @param {number} id
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getRaindrop: (id: number, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     *
     * @param {number} id
     * @param {object} [body]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    updateRaindrop: (id: number, body?: object, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
};

/**
 * HighlightApi - factory interface
 * @export
 */
declare const HighlightApiFactory: (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) => {
    /**
     *
     * @param {number} [page]
     * @param {number} [perpage]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getAllHighlights(page?: number, perpage?: number, options?: any): AxiosPromise<GetAllHighlightsResponse>;
    /**
     *
     * @param {number} collectionId
     * @param {number} [page]
     * @param {number} [perpage]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getHighlightsInCollection(collectionId: number, page?: number, perpage?: number, options?: any): AxiosPromise<GetHighlightsInCollectionResponse>;
    /**
     *
     * @param {number} id
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getRaindrop(id: number, options?: any): AxiosPromise<GetRaindropResponse>;
    /**
     *
     * @param {number} id
     * @param {object} [body]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    updateRaindrop(id: number, body?: object, options?: any): AxiosPromise<UpdateRaindropResponse>;
};

/**
 * HighlightApi - functional programming interface
 * @export
 */
declare const HighlightApiFp: (configuration?: Configuration) => {
    /**
     *
     * @param {number} [page]
     * @param {number} [perpage]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getAllHighlights(page?: number, perpage?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<GetAllHighlightsResponse>>;
    /**
     *
     * @param {number} collectionId
     * @param {number} [page]
     * @param {number} [perpage]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getHighlightsInCollection(collectionId: number, page?: number, perpage?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<GetHighlightsInCollectionResponse>>;
    /**
     *
     * @param {number} id
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getRaindrop(id: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<GetRaindropResponse>>;
    /**
     *
     * @param {number} id
     * @param {object} [body]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    updateRaindrop(id: number, body?: object, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<UpdateRaindropResponse>>;
};

/**
 * ImportApi - object-oriented interface
 * @export
 * @class ImportApi
 * @extends {BaseAPI}
 */
declare class ImportApi extends BaseAPI {
    /**
     *
     * @param {CheckURLsExistRequest} [checkURLsExistRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ImportApi
     */
    checkURLsExist(checkURLsExistRequest?: CheckURLsExistRequest, options?: RawAxiosRequestConfig): Promise<AxiosResponse<CheckURLsExistResponse, any>>;
    /**
     *
     * @param {File} [_import]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ImportApi
     */
    importHTMLBookmarkFile(_import?: File, options?: RawAxiosRequestConfig): Promise<AxiosResponse<ImportHTMLBookmarkFileResponse, any>>;
    /**
     *
     * @param {string} [url]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ImportApi
     */
    parseURL(url?: string, options?: RawAxiosRequestConfig): Promise<AxiosResponse<ParseURLResponse, any>>;
}

/**
 * ImportApi - axios parameter creator
 * @export
 */
declare const ImportApiAxiosParamCreator: (configuration?: Configuration) => {
    /**
     *
     * @param {CheckURLsExistRequest} [checkURLsExistRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    checkURLsExist: (checkURLsExistRequest?: CheckURLsExistRequest, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     *
     * @param {File} [_import]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    importHTMLBookmarkFile: (_import?: File, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     *
     * @param {string} [url]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    parseURL: (url?: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
};

/**
 * ImportApi - factory interface
 * @export
 */
declare const ImportApiFactory: (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) => {
    /**
     *
     * @param {CheckURLsExistRequest} [checkURLsExistRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    checkURLsExist(checkURLsExistRequest?: CheckURLsExistRequest, options?: any): AxiosPromise<CheckURLsExistResponse>;
    /**
     *
     * @param {File} [_import]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    importHTMLBookmarkFile(_import?: File, options?: any): AxiosPromise<ImportHTMLBookmarkFileResponse>;
    /**
     *
     * @param {string} [url]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    parseURL(url?: string, options?: any): AxiosPromise<ParseURLResponse>;
};

/**
 * ImportApi - functional programming interface
 * @export
 */
declare const ImportApiFp: (configuration?: Configuration) => {
    /**
     *
     * @param {CheckURLsExistRequest} [checkURLsExistRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    checkURLsExist(checkURLsExistRequest?: CheckURLsExistRequest, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<CheckURLsExistResponse>>;
    /**
     *
     * @param {File} [_import]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    importHTMLBookmarkFile(_import?: File, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ImportHTMLBookmarkFileResponse>>;
    /**
     *
     * @param {string} [url]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    parseURL(url?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ParseURLResponse>>;
};

/**
 *
 * @export
 * @interface ImportHTMLBookmarkFileResponse
 */
declare interface ImportHTMLBookmarkFileResponse {
    /**
     *
     * @type {boolean}
     * @memberof ImportHTMLBookmarkFileResponse
     */
    'result': boolean;
    /**
     *
     * @type {Array<ImportHTMLBookmarkFileResponseItemFolder>}
     * @memberof ImportHTMLBookmarkFileResponse
     */
    'items': Array<ImportHTMLBookmarkFileResponseItemFolder>;
    /**
     *
     * @type {ImportHTMLBookmarkFileResponseCount}
     * @memberof ImportHTMLBookmarkFileResponse
     */
    'count': ImportHTMLBookmarkFileResponseCount;
}

/**
 *
 * @export
 * @interface ImportHTMLBookmarkFileResponseCount
 */
declare interface ImportHTMLBookmarkFileResponseCount {
    /**
     *
     * @type {number}
     * @memberof ImportHTMLBookmarkFileResponseCount
     */
    'bookmarks': number;
    /**
     *
     * @type {number}
     * @memberof ImportHTMLBookmarkFileResponseCount
     */
    'folders': number;
    /**
     *
     * @type {number}
     * @memberof ImportHTMLBookmarkFileResponseCount
     */
    'tags': number;
    /**
     *
     * @type {number}
     * @memberof ImportHTMLBookmarkFileResponseCount
     */
    'highlights': number;
}

/**
 *
 * @export
 * @interface ImportHTMLBookmarkFileResponseItemBookmark
 */
declare interface ImportHTMLBookmarkFileResponseItemBookmark {
    /**
     *
     * @type {string}
     * @memberof ImportHTMLBookmarkFileResponseItemBookmark
     */
    'link': string;
    /**
     *
     * @type {string}
     * @memberof ImportHTMLBookmarkFileResponseItemBookmark
     */
    'title': string;
    /**
     *
     * @type {string}
     * @memberof ImportHTMLBookmarkFileResponseItemBookmark
     */
    'excerpt': string;
    /**
     *
     * @type {string}
     * @memberof ImportHTMLBookmarkFileResponseItemBookmark
     */
    'created': string;
    /**
     *
     * @type {string}
     * @memberof ImportHTMLBookmarkFileResponseItemBookmark
     */
    'lastUpdate': string;
    /**
     *
     * @type {Array<string>}
     * @memberof ImportHTMLBookmarkFileResponseItemBookmark
     */
    'tags': Array<string>;
    /**
     *
     * @type {string}
     * @memberof ImportHTMLBookmarkFileResponseItemBookmark
     */
    'note': string;
    /**
     *
     * @type {string}
     * @memberof ImportHTMLBookmarkFileResponseItemBookmark
     */
    'cover': string;
    /**
     *
     * @type {Array<ParseURLResponseItemMediaInner>}
     * @memberof ImportHTMLBookmarkFileResponseItemBookmark
     */
    'media': Array<ParseURLResponseItemMediaInner>;
    /**
     *
     * @type {boolean}
     * @memberof ImportHTMLBookmarkFileResponseItemBookmark
     */
    'important': boolean;
}

/**
 *
 * @export
 * @interface ImportHTMLBookmarkFileResponseItemFolder
 */
declare interface ImportHTMLBookmarkFileResponseItemFolder {
    /**
     *
     * @type {string}
     * @memberof ImportHTMLBookmarkFileResponseItemFolder
     */
    'title': string;
    /**
     *
     * @type {Array<ImportHTMLBookmarkFileResponseItemFolder>}
     * @memberof ImportHTMLBookmarkFileResponseItemFolder
     */
    'folders': Array<ImportHTMLBookmarkFileResponseItemFolder>;
    /**
     *
     * @type {Array<ImportHTMLBookmarkFileResponseItemBookmark>}
     * @memberof ImportHTMLBookmarkFileResponseItemFolder
     */
    'bookmarks': Array<ImportHTMLBookmarkFileResponseItemBookmark>;
}

/**
 * Create the tree from sources.
 * @param data Data of root node.
 * @param source Array of sources.
 * @returns Root node of built tree.
 */
declare function makeTree<_, T>(data: T, source: TreeSource<_, T>[]): TreeNode<T>;

/**
 *
 * @export
 * @interface MergeCollectionsRequest
 */
declare interface MergeCollectionsRequest {
    /**
     *
     * @type {number}
     * @memberof MergeCollectionsRequest
     */
    'to'?: number;
    /**
     *
     * @type {Array<number>}
     * @memberof MergeCollectionsRequest
     */
    'ids'?: Array<number>;
}

/**
 *
 * @export
 * @interface MergeCollectionsResponse
 */
declare interface MergeCollectionsResponse {
    /**
     *
     * @type {boolean}
     * @memberof MergeCollectionsResponse
     */
    'result': boolean;
    /**
     *
     * @type {number}
     * @memberof MergeCollectionsResponse
     */
    'modified': number;
    /**
     *
     * @type {Array<number>}
     * @memberof MergeCollectionsResponse
     */
    'ids': Array<number>;
}

/**
 *
 * @export
 * @interface ObtainToken
 */
declare interface ObtainToken {
    /**
     *
     * @type {string}
     * @memberof ObtainToken
     */
    'grant_type': ObtainTokenGrantTypeEnum;
    /**
     *
     * @type {string}
     * @memberof ObtainToken
     */
    'code': string;
    /**
     *
     * @type {string}
     * @memberof ObtainToken
     */
    'client_id': string;
    /**
     *
     * @type {string}
     * @memberof ObtainToken
     */
    'client_secret': string;
    /**
     *
     * @type {string}
     * @memberof ObtainToken
     */
    'redirect_uri': string;
}

declare const ObtainTokenGrantTypeEnum: {
    readonly AuthorizationCode: "authorization_code";
};

declare type ObtainTokenGrantTypeEnum = typeof ObtainTokenGrantTypeEnum[keyof typeof ObtainTokenGrantTypeEnum];

/**
 *
 * @export
 * @interface ParseURLResponse
 */
declare interface ParseURLResponse {
    /**
     *
     * @type {boolean}
     * @memberof ParseURLResponse
     */
    'result': boolean;
    /**
     *
     * @type {ParseURLResponseItem}
     * @memberof ParseURLResponse
     */
    'item': ParseURLResponseItem;
}

/**
 *
 * @export
 * @interface ParseURLResponseItem
 */
declare interface ParseURLResponseItem {
    /**
     *
     * @type {string}
     * @memberof ParseURLResponseItem
     */
    'title': string;
    /**
     *
     * @type {string}
     * @memberof ParseURLResponseItem
     */
    'excerpt': string;
    /**
     *
     * @type {string}
     * @memberof ParseURLResponseItem
     */
    'cover': string;
    /**
     *
     * @type {Array<ParseURLResponseItemMediaInner>}
     * @memberof ParseURLResponseItem
     */
    'media': Array<ParseURLResponseItemMediaInner>;
    /**
     *
     * @type {string}
     * @memberof ParseURLResponseItem
     */
    'type': string;
    /**
     *
     * @type {ParseURLResponseItemMeta}
     * @memberof ParseURLResponseItem
     */
    'meta': ParseURLResponseItemMeta;
}

/**
 *
 * @export
 * @interface ParseURLResponseItemMediaInner
 */
declare interface ParseURLResponseItemMediaInner {
    /**
     *
     * @type {string}
     * @memberof ParseURLResponseItemMediaInner
     */
    'link': string;
}

/**
 *
 * @export
 * @interface ParseURLResponseItemMeta
 */
declare interface ParseURLResponseItemMeta {
    /**
     *
     * @type {Array<string>}
     * @memberof ParseURLResponseItemMeta
     */
    'tags': Array<string>;
}

/**
 * Raindrop API set.
 *
 * You can provide auth credentials via `new Configuration({accessToken: ...})` or headers in Axios instances.
 */
declare class Raindrop {
    /** Axios client instance. If not set, will use default Axios instance. */
    readonly client: AxiosInstance;
    /** API global configurations. */
    readonly configuration: Configuration;
    readonly auth: AuthenticationApi;
    readonly user: UserApi;
    readonly collection: CollectionApi;
    readonly filter: FilterApi;
    readonly highlight: HighlightApi;
    readonly import: ImportApi;
    readonly raindrop: RaindropApi;
    readonly tag: TagApi;
    constructor(configuration?: Configuration, client?: AxiosInstance);
}

declare class RaindropApi extends RaindropApi_2 {
    /**
     * Fetch all raindrops of a collection.
     * @param collectionId ID of collection.
     * @param params Request parameters.
     * @param options Axios request config.
     * @returns Array of raindrops.
     */
    getAllRaindrops(collectionId?: number, params?: GetAllRaindropsParams, options?: AxiosRequestConfig<any>): Promise<RaindropItem[]>;
}

/**
 * RaindropApi - object-oriented interface
 * @export
 * @class RaindropApi
 * @extends {BaseAPI}
 */
declare class RaindropApi_2 extends BaseAPI {
    /**
     *
     * @param {CreateRaindropRequest} [createRaindropRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RaindropApi
     */
    createRaindrop(createRaindropRequest?: CreateRaindropRequest, options?: RawAxiosRequestConfig): Promise<AxiosResponse<CreateRaindropResponse, any>>;
    /**
     *
     * @param {object} [body]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RaindropApi
     */
    createRaindrops(body?: object, options?: RawAxiosRequestConfig): Promise<AxiosResponse<CreateRaindropsResponse, any>>;
    /**
     *
     * @param {number} id
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RaindropApi
     */
    getPermanentCopy(id: number, options?: RawAxiosRequestConfig): Promise<AxiosResponse<void, any>>;
    /**
     *
     * @param {number} id
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RaindropApi
     */
    getRaindrop(id: number, options?: RawAxiosRequestConfig): Promise<AxiosResponse<GetRaindropResponse, any>>;
    /**
     *
     * @param {number} collectionId
     * @param {string} [sort]
     * @param {number} [perpage]
     * @param {number} [page]
     * @param {string} [search]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RaindropApi
     */
    getRaindrops(collectionId: number, sort?: string, perpage?: number, page?: number, search?: string, options?: RawAxiosRequestConfig): Promise<AxiosResponse<GetRaindropsResponse, any>>;
    /**
     *
     * @param {number} id
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RaindropApi
     */
    removeRaindrop(id: number, options?: RawAxiosRequestConfig): Promise<AxiosResponse<RemoveRaindropResponse, any>>;
    /**
     *
     * @param {number} collectionId
     * @param {string} [search]
     * @param {RemoveRaindropsRequest} [removeRaindropsRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RaindropApi
     */
    removeRaindrops(collectionId: number, search?: string, removeRaindropsRequest?: RemoveRaindropsRequest, options?: RawAxiosRequestConfig): Promise<AxiosResponse<RemoveRaindropsResponse, any>>;
    /**
     *
     * @param {number} id
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RaindropApi
     */
    suggestForExistingBookmark(id: number, options?: RawAxiosRequestConfig): Promise<AxiosResponse<SuggestForExistingBookmarkResponse, any>>;
    /**
     *
     * @param {SuggestForNewBookmarkRequest} [suggestForNewBookmarkRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RaindropApi
     */
    suggestForNewBookmark(suggestForNewBookmarkRequest?: SuggestForNewBookmarkRequest, options?: RawAxiosRequestConfig): Promise<AxiosResponse<SuggestForNewBookmarkResponse, any>>;
    /**
     *
     * @param {number} id
     * @param {object} [body]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RaindropApi
     */
    updateRaindrop(id: number, body?: object, options?: RawAxiosRequestConfig): Promise<AxiosResponse<UpdateRaindropResponse, any>>;
    /**
     *
     * @param {number} collectionId
     * @param {UpdateRaindropsRequest} [updateRaindropsRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RaindropApi
     */
    updateRaindrops(collectionId: number, updateRaindropsRequest?: UpdateRaindropsRequest, options?: RawAxiosRequestConfig): Promise<AxiosResponse<UpdateRaindropsResponse, any>>;
    /**
     *
     * @param {File} [file]
     * @param {number} [collectionId]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RaindropApi
     */
    uploadFile(file?: File, collectionId?: number, options?: RawAxiosRequestConfig): Promise<AxiosResponse<UploadFileResponse, any>>;
    /**
     *
     * @param {number} id
     * @param {File} [cover]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RaindropApi
     */
    uploadRaindropCover(id: number, cover?: File, options?: RawAxiosRequestConfig): Promise<AxiosResponse<UploadRaindropCoverResponse, any>>;
}

/**
 * RaindropApi - axios parameter creator
 * @export
 */
declare const RaindropApiAxiosParamCreator: (configuration?: Configuration) => {
    /**
     *
     * @param {CreateRaindropRequest} [createRaindropRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    createRaindrop: (createRaindropRequest?: CreateRaindropRequest, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     *
     * @param {object} [body]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    createRaindrops: (body?: object, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     *
     * @param {number} id
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getPermanentCopy: (id: number, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     *
     * @param {number} id
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getRaindrop: (id: number, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     *
     * @param {number} collectionId
     * @param {string} [sort]
     * @param {number} [perpage]
     * @param {number} [page]
     * @param {string} [search]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getRaindrops: (collectionId: number, sort?: string, perpage?: number, page?: number, search?: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     *
     * @param {number} id
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    removeRaindrop: (id: number, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     *
     * @param {number} collectionId
     * @param {string} [search]
     * @param {RemoveRaindropsRequest} [removeRaindropsRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    removeRaindrops: (collectionId: number, search?: string, removeRaindropsRequest?: RemoveRaindropsRequest, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     *
     * @param {number} id
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    suggestForExistingBookmark: (id: number, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     *
     * @param {SuggestForNewBookmarkRequest} [suggestForNewBookmarkRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    suggestForNewBookmark: (suggestForNewBookmarkRequest?: SuggestForNewBookmarkRequest, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     *
     * @param {number} id
     * @param {object} [body]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    updateRaindrop: (id: number, body?: object, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     *
     * @param {number} collectionId
     * @param {UpdateRaindropsRequest} [updateRaindropsRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    updateRaindrops: (collectionId: number, updateRaindropsRequest?: UpdateRaindropsRequest, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     *
     * @param {File} [file]
     * @param {number} [collectionId]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    uploadFile: (file?: File, collectionId?: number, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     *
     * @param {number} id
     * @param {File} [cover]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    uploadRaindropCover: (id: number, cover?: File, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
};

/**
 * RaindropApi - factory interface
 * @export
 */
declare const RaindropApiFactory: (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) => {
    /**
     *
     * @param {CreateRaindropRequest} [createRaindropRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    createRaindrop(createRaindropRequest?: CreateRaindropRequest, options?: any): AxiosPromise<CreateRaindropResponse>;
    /**
     *
     * @param {object} [body]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    createRaindrops(body?: object, options?: any): AxiosPromise<CreateRaindropsResponse>;
    /**
     *
     * @param {number} id
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getPermanentCopy(id: number, options?: any): AxiosPromise<void>;
    /**
     *
     * @param {number} id
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getRaindrop(id: number, options?: any): AxiosPromise<GetRaindropResponse>;
    /**
     *
     * @param {number} collectionId
     * @param {string} [sort]
     * @param {number} [perpage]
     * @param {number} [page]
     * @param {string} [search]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getRaindrops(collectionId: number, sort?: string, perpage?: number, page?: number, search?: string, options?: any): AxiosPromise<GetRaindropsResponse>;
    /**
     *
     * @param {number} id
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    removeRaindrop(id: number, options?: any): AxiosPromise<RemoveRaindropResponse>;
    /**
     *
     * @param {number} collectionId
     * @param {string} [search]
     * @param {RemoveRaindropsRequest} [removeRaindropsRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    removeRaindrops(collectionId: number, search?: string, removeRaindropsRequest?: RemoveRaindropsRequest, options?: any): AxiosPromise<RemoveRaindropsResponse>;
    /**
     *
     * @param {number} id
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    suggestForExistingBookmark(id: number, options?: any): AxiosPromise<SuggestForExistingBookmarkResponse>;
    /**
     *
     * @param {SuggestForNewBookmarkRequest} [suggestForNewBookmarkRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    suggestForNewBookmark(suggestForNewBookmarkRequest?: SuggestForNewBookmarkRequest, options?: any): AxiosPromise<SuggestForNewBookmarkResponse>;
    /**
     *
     * @param {number} id
     * @param {object} [body]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    updateRaindrop(id: number, body?: object, options?: any): AxiosPromise<UpdateRaindropResponse>;
    /**
     *
     * @param {number} collectionId
     * @param {UpdateRaindropsRequest} [updateRaindropsRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    updateRaindrops(collectionId: number, updateRaindropsRequest?: UpdateRaindropsRequest, options?: any): AxiosPromise<UpdateRaindropsResponse>;
    /**
     *
     * @param {File} [file]
     * @param {number} [collectionId]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    uploadFile(file?: File, collectionId?: number, options?: any): AxiosPromise<UploadFileResponse>;
    /**
     *
     * @param {number} id
     * @param {File} [cover]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    uploadRaindropCover(id: number, cover?: File, options?: any): AxiosPromise<UploadRaindropCoverResponse>;
};

/**
 * RaindropApi - functional programming interface
 * @export
 */
declare const RaindropApiFp: (configuration?: Configuration) => {
    /**
     *
     * @param {CreateRaindropRequest} [createRaindropRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    createRaindrop(createRaindropRequest?: CreateRaindropRequest, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<CreateRaindropResponse>>;
    /**
     *
     * @param {object} [body]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    createRaindrops(body?: object, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<CreateRaindropsResponse>>;
    /**
     *
     * @param {number} id
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getPermanentCopy(id: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>>;
    /**
     *
     * @param {number} id
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getRaindrop(id: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<GetRaindropResponse>>;
    /**
     *
     * @param {number} collectionId
     * @param {string} [sort]
     * @param {number} [perpage]
     * @param {number} [page]
     * @param {string} [search]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getRaindrops(collectionId: number, sort?: string, perpage?: number, page?: number, search?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<GetRaindropsResponse>>;
    /**
     *
     * @param {number} id
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    removeRaindrop(id: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<RemoveRaindropResponse>>;
    /**
     *
     * @param {number} collectionId
     * @param {string} [search]
     * @param {RemoveRaindropsRequest} [removeRaindropsRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    removeRaindrops(collectionId: number, search?: string, removeRaindropsRequest?: RemoveRaindropsRequest, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<RemoveRaindropsResponse>>;
    /**
     *
     * @param {number} id
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    suggestForExistingBookmark(id: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<SuggestForExistingBookmarkResponse>>;
    /**
     *
     * @param {SuggestForNewBookmarkRequest} [suggestForNewBookmarkRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    suggestForNewBookmark(suggestForNewBookmarkRequest?: SuggestForNewBookmarkRequest, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<SuggestForNewBookmarkResponse>>;
    /**
     *
     * @param {number} id
     * @param {object} [body]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    updateRaindrop(id: number, body?: object, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<UpdateRaindropResponse>>;
    /**
     *
     * @param {number} collectionId
     * @param {UpdateRaindropsRequest} [updateRaindropsRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    updateRaindrops(collectionId: number, updateRaindropsRequest?: UpdateRaindropsRequest, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<UpdateRaindropsResponse>>;
    /**
     *
     * @param {File} [file]
     * @param {number} [collectionId]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    uploadFile(file?: File, collectionId?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<UploadFileResponse>>;
    /**
     *
     * @param {number} id
     * @param {File} [cover]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    uploadRaindropCover(id: number, cover?: File, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<UploadRaindropCoverResponse>>;
};

declare type RaindropItem = GetRaindropsResponse["items"][0];

/**
 *
 * @export
 * @interface RefreshToken
 */
declare interface RefreshToken {
    /**
     *
     * @type {string}
     * @memberof RefreshToken
     */
    'client_id': string;
    /**
     *
     * @type {string}
     * @memberof RefreshToken
     */
    'client_secret': string;
    /**
     *
     * @type {string}
     * @memberof RefreshToken
     */
    'grant_type': RefreshTokenGrantTypeEnum;
    /**
     *
     * @type {string}
     * @memberof RefreshToken
     */
    'refresh_token': string;
}

declare const RefreshTokenGrantTypeEnum: {
    readonly RefreshToken: "refresh_token";
};

declare type RefreshTokenGrantTypeEnum = typeof RefreshTokenGrantTypeEnum[keyof typeof RefreshTokenGrantTypeEnum];

/**
 *
 * @export
 * @interface RemoveAllEmptyCollectionsResponse
 */
declare interface RemoveAllEmptyCollectionsResponse {
    /**
     *
     * @type {boolean}
     * @memberof RemoveAllEmptyCollectionsResponse
     */
    'result': boolean;
    /**
     *
     * @type {number}
     * @memberof RemoveAllEmptyCollectionsResponse
     */
    'count': number;
}

/**
 *
 * @export
 * @interface RemoveCollectionsRequest
 */
declare interface RemoveCollectionsRequest {
    /**
     *
     * @type {Array<number>}
     * @memberof RemoveCollectionsRequest
     */
    'ids'?: Array<number>;
}

/**
 *
 * @export
 * @interface RemoveCollectionsResponse
 */
declare interface RemoveCollectionsResponse {
    /**
     *
     * @type {boolean}
     * @memberof RemoveCollectionsResponse
     */
    'result': boolean;
    /**
     *
     * @type {number}
     * @memberof RemoveCollectionsResponse
     */
    'modified': number;
    /**
     *
     * @type {Array<number>}
     * @memberof RemoveCollectionsResponse
     */
    'ids': Array<number>;
}

/**
 *
 * @export
 * @interface RemoveRaindropResponse
 */
declare interface RemoveRaindropResponse {
    /**
     *
     * @type {boolean}
     * @memberof RemoveRaindropResponse
     */
    'result'?: boolean;
    /**
     *
     * @type {RemoveRaindropResponseItem}
     * @memberof RemoveRaindropResponse
     */
    'item'?: RemoveRaindropResponseItem;
}

/**
 *
 * @export
 * @interface RemoveRaindropResponseItem
 */
declare interface RemoveRaindropResponseItem {
    /**
     *
     * @type {number}
     * @memberof RemoveRaindropResponseItem
     */
    '_id': number;
    /**
     *
     * @type {CollectionRef}
     * @memberof RemoveRaindropResponseItem
     */
    'collection': CollectionRef | null;
    /**
     *
     * @type {number}
     * @memberof RemoveRaindropResponseItem
     */
    'collectionId': number;
    /**
     *
     * @type {string}
     * @memberof RemoveRaindropResponseItem
     */
    'cover': string;
    /**
     *
     * @type {string}
     * @memberof RemoveRaindropResponseItem
     */
    'created': string;
    /**
     *
     * @type {CreatorRef}
     * @memberof RemoveRaindropResponseItem
     */
    'creatorRef': CreatorRef;
    /**
     *
     * @type {string}
     * @memberof RemoveRaindropResponseItem
     */
    'domain': string;
    /**
     *
     * @type {string}
     * @memberof RemoveRaindropResponseItem
     */
    'excerpt': string;
    /**
     *
     * @type {string}
     * @memberof RemoveRaindropResponseItem
     */
    'lastUpdate': string;
    /**
     *
     * @type {string}
     * @memberof RemoveRaindropResponseItem
     */
    'link': string;
    /**
     *
     * @type {Array<CreateRaindropResponseItemMediaInner>}
     * @memberof RemoveRaindropResponseItem
     */
    'media': Array<CreateRaindropResponseItemMediaInner>;
    /**
     *
     * @type {string}
     * @memberof RemoveRaindropResponseItem
     */
    'note': string;
    /**
     *
     * @type {number}
     * @memberof RemoveRaindropResponseItem
     */
    'order': number;
    /**
     *
     * @type {boolean}
     * @memberof RemoveRaindropResponseItem
     */
    'removed': boolean;
    /**
     *
     * @type {number}
     * @memberof RemoveRaindropResponseItem
     */
    'sort': number;
    /**
     *
     * @type {Array<string>}
     * @memberof RemoveRaindropResponseItem
     */
    'tags': Array<string>;
    /**
     *
     * @type {string}
     * @memberof RemoveRaindropResponseItem
     */
    'title': string;
    /**
     *
     * @type {string}
     * @memberof RemoveRaindropResponseItem
     */
    'type': string;
    /**
     *
     * @type {UserRef}
     * @memberof RemoveRaindropResponseItem
     */
    'user': UserRef;
}

/**
 *
 * @export
 * @interface RemoveRaindropsRequest
 */
declare interface RemoveRaindropsRequest {
    /**
     *
     * @type {Array<number>}
     * @memberof RemoveRaindropsRequest
     */
    'ids'?: Array<number>;
}

/**
 *
 * @export
 * @interface RemoveRaindropsResponse
 */
declare interface RemoveRaindropsResponse {
    /**
     *
     * @type {boolean}
     * @memberof RemoveRaindropsResponse
     */
    'result': boolean;
    /**
     *
     * @type {number}
     * @memberof RemoveRaindropsResponse
     */
    'modified': number;
}

/**
 *
 * @export
 * @interface RemoveTagsFromCollectionRequest
 */
declare interface RemoveTagsFromCollectionRequest {
    /**
     *
     * @type {Array<string>}
     * @memberof RemoveTagsFromCollectionRequest
     */
    'tags'?: Array<string>;
}

/**
 *
 * @export
 * @interface RenameOrMergeTagsRequest
 */
declare interface RenameOrMergeTagsRequest {
    /**
     *
     * @type {string}
     * @memberof RenameOrMergeTagsRequest
     */
    'replace'?: string;
    /**
     *
     * @type {Array<string>}
     * @memberof RenameOrMergeTagsRequest
     */
    'tags'?: Array<string>;
}

/**
 *
 * @export
 * @interface ReorderAllCollectionsRequest
 */
declare interface ReorderAllCollectionsRequest {
    /**
     *
     * @type {string}
     * @memberof ReorderAllCollectionsRequest
     */
    'sort'?: string;
    /**
     *
     * @type {boolean}
     * @memberof ReorderAllCollectionsRequest
     */
    'expanded'?: boolean;
}

/**
 *
 * @export
 * @interface RequestArgs
 */
declare interface RequestArgs {
    url: string;
    options: RawAxiosRequestConfig;
}

/**
 *
 * @export
 * @enum {string}
 */
declare const Role: {
    readonly Member: "member";
    readonly Viewer: "viewer";
};

declare type Role = typeof Role[keyof typeof Role];

/**
 *
 * @export
 * @interface SearchCoversResponse
 */
declare interface SearchCoversResponse {
    /**
     *
     * @type {boolean}
     * @memberof SearchCoversResponse
     */
    'result': boolean;
    /**
     *
     * @type {Array<SearchCoversResponseItemsInner>}
     * @memberof SearchCoversResponse
     */
    'items': Array<SearchCoversResponseItemsInner>;
}

/**
 *
 * @export
 * @interface SearchCoversResponseItemsInner
 */
declare interface SearchCoversResponseItemsInner {
    /**
     *
     * @type {string}
     * @memberof SearchCoversResponseItemsInner
     */
    'title': string;
    /**
     *
     * @type {Array<SearchCoversResponseItemsInnerIconsInner>}
     * @memberof SearchCoversResponseItemsInner
     */
    'icons': Array<SearchCoversResponseItemsInnerIconsInner>;
}

/**
 *
 * @export
 * @interface SearchCoversResponseItemsInnerIconsInner
 */
declare interface SearchCoversResponseItemsInnerIconsInner {
    /**
     *
     * @type {string}
     * @memberof SearchCoversResponseItemsInnerIconsInner
     */
    'png': string;
}

/**
 *
 * @export
 * @interface ShareCollectionRequest
 */
declare interface ShareCollectionRequest {
    /**
     *
     * @type {Role}
     * @memberof ShareCollectionRequest
     */
    'role': Role;
    /**
     *
     * @type {Array<string>}
     * @memberof ShareCollectionRequest
     */
    'emails': Array<string>;
}

/**
 *
 * @export
 * @interface ShareCollectionResponse
 */
declare interface ShareCollectionResponse {
    /**
     *
     * @type {boolean}
     * @memberof ShareCollectionResponse
     */
    'result': boolean;
    /**
     *
     * @type {string}
     * @memberof ShareCollectionResponse
     */
    'token': string;
    /**
     *
     * @type {string}
     * @memberof ShareCollectionResponse
     */
    'link': string;
}

/**
 *
 * @export
 * @interface SimpleResponse
 */
declare interface SimpleResponse {
    /**
     *
     * @type {boolean}
     * @memberof SimpleResponse
     */
    'result': boolean;
}

/**
 *
 * @export
 * @interface SuggestForExistingBookmarkResponse
 */
declare interface SuggestForExistingBookmarkResponse {
    /**
     *
     * @type {boolean}
     * @memberof SuggestForExistingBookmarkResponse
     */
    'result'?: boolean;
}

/**
 *
 * @export
 * @interface SuggestForNewBookmarkRequest
 */
declare interface SuggestForNewBookmarkRequest {
    /**
     *
     * @type {string}
     * @memberof SuggestForNewBookmarkRequest
     */
    'link'?: string;
}

/**
 *
 * @export
 * @interface SuggestForNewBookmarkResponse
 */
declare interface SuggestForNewBookmarkResponse {
    /**
     *
     * @type {boolean}
     * @memberof SuggestForNewBookmarkResponse
     */
    'result'?: boolean;
}

/**
 * TagApi - object-oriented interface
 * @export
 * @class TagApi
 * @extends {BaseAPI}
 */
declare class TagApi extends BaseAPI {
    /**
     *
     * @param {number} [collectionId]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof TagApi
     */
    getTagsInCollection(collectionId?: number, options?: RawAxiosRequestConfig): Promise<AxiosResponse<GetTagsInCollectionResponse, any>>;
    /**
     *
     * @param {number} [collectionId]
     * @param {RemoveTagsFromCollectionRequest} [removeTagsFromCollectionRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof TagApi
     */
    removeTagsFromCollection(collectionId?: number, removeTagsFromCollectionRequest?: RemoveTagsFromCollectionRequest, options?: RawAxiosRequestConfig): Promise<AxiosResponse<SimpleResponse, any>>;
    /**
     *
     * @param {number} [collectionId]
     * @param {RenameOrMergeTagsRequest} [renameOrMergeTagsRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof TagApi
     */
    renameOrMergeTags(collectionId?: number, renameOrMergeTagsRequest?: RenameOrMergeTagsRequest, options?: RawAxiosRequestConfig): Promise<AxiosResponse<SimpleResponse, any>>;
}

/**
 * TagApi - axios parameter creator
 * @export
 */
declare const TagApiAxiosParamCreator: (configuration?: Configuration) => {
    /**
     *
     * @param {number} [collectionId]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getTagsInCollection: (collectionId?: number, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     *
     * @param {number} [collectionId]
     * @param {RemoveTagsFromCollectionRequest} [removeTagsFromCollectionRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    removeTagsFromCollection: (collectionId?: number, removeTagsFromCollectionRequest?: RemoveTagsFromCollectionRequest, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     *
     * @param {number} [collectionId]
     * @param {RenameOrMergeTagsRequest} [renameOrMergeTagsRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    renameOrMergeTags: (collectionId?: number, renameOrMergeTagsRequest?: RenameOrMergeTagsRequest, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
};

/**
 * TagApi - factory interface
 * @export
 */
declare const TagApiFactory: (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) => {
    /**
     *
     * @param {number} [collectionId]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getTagsInCollection(collectionId?: number, options?: any): AxiosPromise<GetTagsInCollectionResponse>;
    /**
     *
     * @param {number} [collectionId]
     * @param {RemoveTagsFromCollectionRequest} [removeTagsFromCollectionRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    removeTagsFromCollection(collectionId?: number, removeTagsFromCollectionRequest?: RemoveTagsFromCollectionRequest, options?: any): AxiosPromise<SimpleResponse>;
    /**
     *
     * @param {number} [collectionId]
     * @param {RenameOrMergeTagsRequest} [renameOrMergeTagsRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    renameOrMergeTags(collectionId?: number, renameOrMergeTagsRequest?: RenameOrMergeTagsRequest, options?: any): AxiosPromise<SimpleResponse>;
};

/**
 * TagApi - functional programming interface
 * @export
 */
declare const TagApiFp: (configuration?: Configuration) => {
    /**
     *
     * @param {number} [collectionId]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getTagsInCollection(collectionId?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<GetTagsInCollectionResponse>>;
    /**
     *
     * @param {number} [collectionId]
     * @param {RemoveTagsFromCollectionRequest} [removeTagsFromCollectionRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    removeTagsFromCollection(collectionId?: number, removeTagsFromCollectionRequest?: RemoveTagsFromCollectionRequest, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<SimpleResponse>>;
    /**
     *
     * @param {number} [collectionId]
     * @param {RenameOrMergeTagsRequest} [renameOrMergeTagsRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    renameOrMergeTags(collectionId?: number, renameOrMergeTagsRequest?: RenameOrMergeTagsRequest, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<SimpleResponse>>;
};

/**
 *
 * @export
 * @interface TokenErrorResponse
 */
declare interface TokenErrorResponse {
    /**
     *
     * @type {boolean}
     * @memberof TokenErrorResponse
     */
    'result': boolean;
    /**
     *
     * @type {number}
     * @memberof TokenErrorResponse
     */
    'status': number;
    /**
     *
     * @type {string}
     * @memberof TokenErrorResponse
     */
    'errorMessage': string;
}

/**
 *
 * @export
 * @interface TokenResponse
 */
declare interface TokenResponse {
    /**
     *
     * @type {string}
     * @memberof TokenResponse
     */
    'access_token': string;
    /**
     *
     * @type {string}
     * @memberof TokenResponse
     */
    'refresh_token': string;
    /**
     *
     * @type {number}
     * @memberof TokenResponse
     * @deprecated
     */
    'expires'?: number;
    /**
     *
     * @type {number}
     * @memberof TokenResponse
     */
    'expires_in': number;
    /**
     *
     * @type {string}
     * @memberof TokenResponse
     */
    'token_type': TokenResponseTokenTypeEnum;
}

declare const TokenResponseTokenTypeEnum: {
    readonly Bearer: "Bearer";
};

declare type TokenResponseTokenTypeEnum = typeof TokenResponseTokenTypeEnum[keyof typeof TokenResponseTokenTypeEnum];

declare namespace tree {
    export {
        makeTree,
        TreeNode,
        TreeSource
    }
}

/**
 * Generic tree class.
 */
declare class TreeNode<T> {
    private _data;
    private _parent;
    private _children;
    /**
     * Create tree node.
     * @param data Node data.
     * @param children Initial tree children.
     */
    constructor(data: T | null, children?: TreeNode<T>[]);
    get data(): T | null;
    get parent(): TreeNode<T> | null;
    set parent(parent: TreeNode<T>);
    isRoot(): boolean;
    get children(): TreeNode<T>[];
    /**
     * Add children to current node.
     * @param children Children nodes to append.
     */
    addChildren(...children: TreeNode<T>[]): void;
    /**
     * Pre-order traverse this tree.
     * @param callbackFn Function to be called with traversing nodes.
     */
    traverse(callbackFn: (node: TreeNode<T>) => void): void;
}

/**
 * Interface for building tree, {@link TreeNode}.
 */
declare interface TreeSource<D, T = D> {
    /** Raw data for referencing. */
    data: D;
    /** Get ID of source. */
    get id(): string;
    /** Return source' parent ID. Should return `null` if parent is root. */
    get parent(): string | null;
    /** Create {@link TreeNode} from current source. */
    toNode(): TreeNode<T>;
}

/**
 *
 * @export
 * @interface UpdateCollectionRequest
 */
declare interface UpdateCollectionRequest {
    /**
     *
     * @type {string}
     * @memberof UpdateCollectionRequest
     */
    'view'?: string;
    /**
     *
     * @type {string}
     * @memberof UpdateCollectionRequest
     */
    'title'?: string;
    /**
     *
     * @type {number}
     * @memberof UpdateCollectionRequest
     */
    'sort'?: number;
    /**
     * Collection and raindrops that it contains will be accessible without authentication?
     * @type {boolean}
     * @memberof UpdateCollectionRequest
     */
    'public'?: boolean;
    /**
     *
     * @type {CollectionRef}
     * @memberof UpdateCollectionRequest
     */
    'parent'?: CollectionRef | null;
    /**
     *
     * @type {Array<string>}
     * @memberof UpdateCollectionRequest
     */
    'cover'?: Array<string>;
    /**
     *
     * @type {boolean}
     * @memberof UpdateCollectionRequest
     */
    'expanded'?: boolean;
}

/**
 *
 * @export
 * @interface UpdateCollectionResponse
 */
declare interface UpdateCollectionResponse {
    /**
     *
     * @type {boolean}
     * @memberof UpdateCollectionResponse
     */
    'result': boolean;
    /**
     *
     * @type {Collection}
     * @memberof UpdateCollectionResponse
     */
    'item': Collection;
}

/**
 *
 * @export
 * @interface UpdateCurrentUserRequest
 */
declare interface UpdateCurrentUserRequest {
    /**
     *
     * @type {Array<UpdateCurrentUserRequestGroupsInner>}
     * @memberof UpdateCurrentUserRequest
     */
    'groups'?: Array<UpdateCurrentUserRequestGroupsInner>;
    /**
     *
     * @type {UserConfig}
     * @memberof UpdateCurrentUserRequest
     */
    'config'?: UserConfig;
    /**
     *
     * @type {string}
     * @memberof UpdateCurrentUserRequest
     */
    'newpassword'?: string;
    /**
     *
     * @type {string}
     * @memberof UpdateCurrentUserRequest
     */
    'oldpassword'?: string;
    /**
     *
     * @type {string}
     * @memberof UpdateCurrentUserRequest
     */
    'fullName'?: string;
    /**
     *
     * @type {string}
     * @memberof UpdateCurrentUserRequest
     */
    'email'?: string;
}

/**
 *
 * @export
 * @interface UpdateCurrentUserRequestGroupsInner
 */
declare interface UpdateCurrentUserRequestGroupsInner {
    /**
     *
     * @type {string}
     * @memberof UpdateCurrentUserRequestGroupsInner
     */
    'title'?: string;
    /**
     *
     * @type {boolean}
     * @memberof UpdateCurrentUserRequestGroupsInner
     */
    'hidden'?: boolean;
    /**
     *
     * @type {number}
     * @memberof UpdateCurrentUserRequestGroupsInner
     */
    'sort'?: number;
    /**
     *
     * @type {Array<number>}
     * @memberof UpdateCurrentUserRequestGroupsInner
     */
    'collections'?: Array<number>;
}

/**
 *
 * @export
 * @interface UpdateCurrentUserResponse
 */
declare interface UpdateCurrentUserResponse {
    /**
     *
     * @type {boolean}
     * @memberof UpdateCurrentUserResponse
     */
    'result': boolean;
    /**
     *
     * @type {UpdateCurrentUserResponseUser}
     * @memberof UpdateCurrentUserResponse
     */
    'user': UpdateCurrentUserResponseUser;
    /**
     *
     * @type {UpdateCurrentUserResponseUser}
     * @memberof UpdateCurrentUserResponse
     */
    'item': UpdateCurrentUserResponseUser;
}

/**
 *
 * @export
 * @interface UpdateCurrentUserResponseUser
 */
declare interface UpdateCurrentUserResponseUser {
    /**
     *
     * @type {number}
     * @memberof UpdateCurrentUserResponseUser
     */
    '_id': number;
    /**
     *
     * @type {UserConfig}
     * @memberof UpdateCurrentUserResponseUser
     */
    'config': UserConfig;
    /**
     *
     * @type {UserDropbox}
     * @memberof UpdateCurrentUserResponseUser
     */
    'dropbox'?: UserDropbox;
    /**
     *
     * @type {string}
     * @memberof UpdateCurrentUserResponseUser
     */
    'email': string;
    /**
     *
     * @type {string}
     * @memberof UpdateCurrentUserResponseUser
     */
    'email_MD5'?: string;
    /**
     *
     * @type {UserFiles}
     * @memberof UpdateCurrentUserResponseUser
     */
    'files': UserFiles;
    /**
     *
     * @type {string}
     * @memberof UpdateCurrentUserResponseUser
     */
    'fullName': string;
    /**
     *
     * @type {UserDropbox}
     * @memberof UpdateCurrentUserResponseUser
     */
    'gdrive'?: UserDropbox;
    /**
     *
     * @type {Array<Group>}
     * @memberof UpdateCurrentUserResponseUser
     */
    'groups': Array<Group>;
    /**
     *
     * @type {boolean}
     * @memberof UpdateCurrentUserResponseUser
     */
    'password': boolean;
    /**
     *
     * @type {boolean}
     * @memberof UpdateCurrentUserResponseUser
     */
    'pro': boolean;
    /**
     *
     * @type {string}
     * @memberof UpdateCurrentUserResponseUser
     */
    'proExpire'?: string;
    /**
     *
     * @type {string}
     * @memberof UpdateCurrentUserResponseUser
     */
    'registered': string;
    /**
     *
     * @type {UserTfa}
     * @memberof UpdateCurrentUserResponseUser
     */
    'tfa'?: UserTfa;
    /**
     *
     * @type {string}
     * @memberof UpdateCurrentUserResponseUser
     */
    'name'?: string;
    /**
     *
     * @type {string}
     * @memberof UpdateCurrentUserResponseUser
     */
    'avatar'?: string;
    /**
     *
     * @type {string}
     * @memberof UpdateCurrentUserResponseUser
     */
    'lastAction'?: string;
    /**
     *
     * @type {string}
     * @memberof UpdateCurrentUserResponseUser
     */
    'lastVisit'?: string;
    /**
     *
     * @type {string}
     * @memberof UpdateCurrentUserResponseUser
     */
    'lastUpdate'?: string;
    /**
     *
     * @type {number}
     * @memberof UpdateCurrentUserResponseUser
     */
    '__v'?: number;
}

/**
 *
 * @export
 * @interface UpdateRaindropResponse
 */
declare interface UpdateRaindropResponse {
    /**
     *
     * @type {boolean}
     * @memberof UpdateRaindropResponse
     */
    'result'?: boolean;
    /**
     *
     * @type {UpdateRaindropResponseItem}
     * @memberof UpdateRaindropResponse
     */
    'item'?: UpdateRaindropResponseItem;
}

/**
 *
 * @export
 * @interface UpdateRaindropResponseItem
 */
declare interface UpdateRaindropResponseItem {
    /**
     *
     * @type {number}
     * @memberof UpdateRaindropResponseItem
     */
    '__v': number;
    /**
     *
     * @type {number}
     * @memberof UpdateRaindropResponseItem
     */
    '_id': number;
    /**
     *
     * @type {CollectionRef}
     * @memberof UpdateRaindropResponseItem
     */
    'collection': CollectionRef | null;
    /**
     *
     * @type {number}
     * @memberof UpdateRaindropResponseItem
     */
    'collectionId': number;
    /**
     *
     * @type {string}
     * @memberof UpdateRaindropResponseItem
     */
    'cover': string;
    /**
     *
     * @type {string}
     * @memberof UpdateRaindropResponseItem
     */
    'created': string;
    /**
     *
     * @type {CreatorRef}
     * @memberof UpdateRaindropResponseItem
     */
    'creatorRef': CreatorRef;
    /**
     *
     * @type {string}
     * @memberof UpdateRaindropResponseItem
     */
    'domain': string;
    /**
     *
     * @type {string}
     * @memberof UpdateRaindropResponseItem
     */
    'excerpt': string;
    /**
     *
     * @type {string}
     * @memberof UpdateRaindropResponseItem
     */
    'lastUpdate': string;
    /**
     *
     * @type {string}
     * @memberof UpdateRaindropResponseItem
     */
    'link': string;
    /**
     *
     * @type {Array<CreateRaindropResponseItemMediaInner>}
     * @memberof UpdateRaindropResponseItem
     */
    'media': Array<CreateRaindropResponseItemMediaInner>;
    /**
     *
     * @type {string}
     * @memberof UpdateRaindropResponseItem
     */
    'note': string;
    /**
     *
     * @type {boolean}
     * @memberof UpdateRaindropResponseItem
     */
    'removed': boolean;
    /**
     *
     * @type {number}
     * @memberof UpdateRaindropResponseItem
     */
    'sort': number;
    /**
     *
     * @type {Array<string>}
     * @memberof UpdateRaindropResponseItem
     */
    'tags': Array<string>;
    /**
     *
     * @type {string}
     * @memberof UpdateRaindropResponseItem
     */
    'title': string;
    /**
     *
     * @type {string}
     * @memberof UpdateRaindropResponseItem
     */
    'type': string;
    /**
     *
     * @type {UserRef}
     * @memberof UpdateRaindropResponseItem
     */
    'user': UserRef;
    /**
     *
     * @type {Array<GetRaindropResponseItemHighlightsInner>}
     * @memberof UpdateRaindropResponseItem
     */
    'highlights': Array<GetRaindropResponseItemHighlightsInner>;
}

/**
 *
 * @export
 * @interface UpdateRaindropsRequest
 */
declare interface UpdateRaindropsRequest {
    /**
     *
     * @type {Array<number>}
     * @memberof UpdateRaindropsRequest
     */
    'ids'?: Array<number>;
    /**
     *
     * @type {boolean}
     * @memberof UpdateRaindropsRequest
     */
    'important'?: boolean;
    /**
     *
     * @type {Array<string>}
     * @memberof UpdateRaindropsRequest
     */
    'tags'?: Array<string>;
    /**
     *
     * @type {Array<string>}
     * @memberof UpdateRaindropsRequest
     */
    'media'?: Array<string>;
    /**
     *
     * @type {string}
     * @memberof UpdateRaindropsRequest
     */
    'cover'?: string;
    /**
     *
     * @type {UpdateRaindropsRequestCollection}
     * @memberof UpdateRaindropsRequest
     */
    'collection'?: UpdateRaindropsRequestCollection;
}

/**
 *
 * @export
 * @interface UpdateRaindropsRequestCollection
 */
declare interface UpdateRaindropsRequestCollection {
    /**
     *
     * @type {number}
     * @memberof UpdateRaindropsRequestCollection
     */
    '$id'?: number;
}

/**
 *
 * @export
 * @interface UpdateRaindropsResponse
 */
declare interface UpdateRaindropsResponse {
    /**
     *
     * @type {boolean}
     * @memberof UpdateRaindropsResponse
     */
    'result'?: boolean;
    /**
     *
     * @type {number}
     * @memberof UpdateRaindropsResponse
     */
    'modified'?: number;
}

/**
 *
 * @export
 * @interface UploadCollectionCoverResponse
 */
declare interface UploadCollectionCoverResponse {
    /**
     *
     * @type {boolean}
     * @memberof UploadCollectionCoverResponse
     */
    'result': boolean;
    /**
     *
     * @type {UploadCollectionCoverResponseItem}
     * @memberof UploadCollectionCoverResponse
     */
    'item': UploadCollectionCoverResponseItem;
}

/**
 *
 * @export
 * @interface UploadCollectionCoverResponseItem
 */
declare interface UploadCollectionCoverResponseItem {
    /**
     *
     * @type {number}
     * @memberof UploadCollectionCoverResponseItem
     */
    '_id': number;
    /**
     *
     * @type {string}
     * @memberof UploadCollectionCoverResponseItem
     */
    'title': string;
    /**
     *
     * @type {string}
     * @memberof UploadCollectionCoverResponseItem
     */
    'description': string;
    /**
     *
     * @type {UserRef}
     * @memberof UploadCollectionCoverResponseItem
     */
    'user': UserRef;
    /**
     *
     * @type {boolean}
     * @memberof UploadCollectionCoverResponseItem
     */
    'public': boolean;
    /**
     *
     * @type {string}
     * @memberof UploadCollectionCoverResponseItem
     */
    'view': string;
    /**
     *
     * @type {number}
     * @memberof UploadCollectionCoverResponseItem
     */
    'count': number;
    /**
     *
     * @type {Array<string>}
     * @memberof UploadCollectionCoverResponseItem
     */
    'cover': Array<string>;
    /**
     *
     * @type {number}
     * @memberof UploadCollectionCoverResponseItem
     */
    'sort': number;
    /**
     *
     * @type {boolean}
     * @memberof UploadCollectionCoverResponseItem
     */
    'expanded': boolean;
    /**
     *
     * @type {CreatorRef}
     * @memberof UploadCollectionCoverResponseItem
     */
    'creatorRef': CreatorRef;
    /**
     *
     * @type {string}
     * @memberof UploadCollectionCoverResponseItem
     */
    'lastAction': string;
    /**
     *
     * @type {string}
     * @memberof UploadCollectionCoverResponseItem
     */
    'created': string;
    /**
     *
     * @type {string}
     * @memberof UploadCollectionCoverResponseItem
     */
    'lastUpdate': string;
    /**
     *
     * @type {string}
     * @memberof UploadCollectionCoverResponseItem
     */
    'slug': string;
    /**
     *
     * @type {string}
     * @memberof UploadCollectionCoverResponseItem
     */
    'color'?: string;
    /**
     *
     * @type {CollectionAccess}
     * @memberof UploadCollectionCoverResponseItem
     */
    'access': CollectionAccess;
    /**
     *
     * @type {boolean}
     * @memberof UploadCollectionCoverResponseItem
     */
    'author': boolean;
    /**
     *
     * @type {object}
     * @memberof UploadCollectionCoverResponseItem
     */
    'parent': object | null;
    /**
     *
     * @type {number}
     * @memberof UploadCollectionCoverResponseItem
     */
    '__v': number;
}

/**
 *
 * @export
 * @interface UploadFileResponse
 */
declare interface UploadFileResponse {
    /**
     *
     * @type {boolean}
     * @memberof UploadFileResponse
     */
    'result': boolean;
    /**
     *
     * @type {UploadFileResponseItem}
     * @memberof UploadFileResponse
     */
    'item': UploadFileResponseItem;
}

/**
 *
 * @export
 * @interface UploadFileResponseItem
 */
declare interface UploadFileResponseItem {
    /**
     *
     * @type {number}
     * @memberof UploadFileResponseItem
     */
    '__v': number;
    /**
     *
     * @type {number}
     * @memberof UploadFileResponseItem
     */
    '_id': number;
    /**
     *
     * @type {CollectionRef}
     * @memberof UploadFileResponseItem
     */
    'collection': CollectionRef | null;
    /**
     *
     * @type {number}
     * @memberof UploadFileResponseItem
     */
    'collectionId': number;
    /**
     *
     * @type {string}
     * @memberof UploadFileResponseItem
     */
    'cover': string;
    /**
     *
     * @type {string}
     * @memberof UploadFileResponseItem
     */
    'created': string;
    /**
     *
     * @type {CreatorRef}
     * @memberof UploadFileResponseItem
     */
    'creatorRef': CreatorRef;
    /**
     *
     * @type {string}
     * @memberof UploadFileResponseItem
     */
    'domain': string;
    /**
     *
     * @type {string}
     * @memberof UploadFileResponseItem
     */
    'excerpt': string;
    /**
     *
     * @type {UploadFileResponseItemFile}
     * @memberof UploadFileResponseItem
     */
    'file': UploadFileResponseItemFile;
    /**
     *
     * @type {string}
     * @memberof UploadFileResponseItem
     */
    'lastUpdate': string;
    /**
     *
     * @type {string}
     * @memberof UploadFileResponseItem
     */
    'link': string;
    /**
     *
     * @type {Array<CreateRaindropResponseItemMediaInner>}
     * @memberof UploadFileResponseItem
     */
    'media': Array<CreateRaindropResponseItemMediaInner>;
    /**
     *
     * @type {string}
     * @memberof UploadFileResponseItem
     */
    'note': string;
    /**
     *
     * @type {boolean}
     * @memberof UploadFileResponseItem
     */
    'removed': boolean;
    /**
     *
     * @type {number}
     * @memberof UploadFileResponseItem
     */
    'sort': number;
    /**
     *
     * @type {Array<string>}
     * @memberof UploadFileResponseItem
     */
    'tags': Array<string>;
    /**
     *
     * @type {string}
     * @memberof UploadFileResponseItem
     */
    'title': string;
    /**
     *
     * @type {string}
     * @memberof UploadFileResponseItem
     */
    'type': string;
    /**
     *
     * @type {UserRef}
     * @memberof UploadFileResponseItem
     */
    'user': UserRef;
}

/**
 *
 * @export
 * @interface UploadFileResponseItemFile
 */
declare interface UploadFileResponseItemFile {
    /**
     *
     * @type {string}
     * @memberof UploadFileResponseItemFile
     */
    'name': string;
    /**
     *
     * @type {number}
     * @memberof UploadFileResponseItemFile
     */
    'size': number;
    /**
     *
     * @type {string}
     * @memberof UploadFileResponseItemFile
     */
    'type': string;
}

/**
 *
 * @export
 * @interface UploadRaindropCoverResponse
 */
declare interface UploadRaindropCoverResponse {
    /**
     *
     * @type {boolean}
     * @memberof UploadRaindropCoverResponse
     */
    'result'?: boolean;
    /**
     *
     * @type {UploadRaindropCoverResponseItem}
     * @memberof UploadRaindropCoverResponse
     */
    'item'?: UploadRaindropCoverResponseItem;
}

/**
 *
 * @export
 * @interface UploadRaindropCoverResponseItem
 */
declare interface UploadRaindropCoverResponseItem {
    /**
     *
     * @type {number}
     * @memberof UploadRaindropCoverResponseItem
     */
    '__v': number;
    /**
     *
     * @type {number}
     * @memberof UploadRaindropCoverResponseItem
     */
    '_id': number;
    /**
     *
     * @type {CollectionRef}
     * @memberof UploadRaindropCoverResponseItem
     */
    'collection': CollectionRef | null;
    /**
     *
     * @type {number}
     * @memberof UploadRaindropCoverResponseItem
     */
    'collectionId': number;
    /**
     *
     * @type {string}
     * @memberof UploadRaindropCoverResponseItem
     */
    'cover': string;
    /**
     *
     * @type {string}
     * @memberof UploadRaindropCoverResponseItem
     */
    'created': string;
    /**
     *
     * @type {CreatorRef}
     * @memberof UploadRaindropCoverResponseItem
     */
    'creatorRef': CreatorRef;
    /**
     *
     * @type {string}
     * @memberof UploadRaindropCoverResponseItem
     */
    'domain': string;
    /**
     *
     * @type {string}
     * @memberof UploadRaindropCoverResponseItem
     */
    'excerpt': string;
    /**
     *
     * @type {string}
     * @memberof UploadRaindropCoverResponseItem
     */
    'lastUpdate': string;
    /**
     *
     * @type {string}
     * @memberof UploadRaindropCoverResponseItem
     */
    'link': string;
    /**
     *
     * @type {Array<CreateRaindropResponseItemMediaInner>}
     * @memberof UploadRaindropCoverResponseItem
     */
    'media': Array<CreateRaindropResponseItemMediaInner>;
    /**
     *
     * @type {string}
     * @memberof UploadRaindropCoverResponseItem
     */
    'note': string;
    /**
     *
     * @type {boolean}
     * @memberof UploadRaindropCoverResponseItem
     */
    'removed': boolean;
    /**
     *
     * @type {number}
     * @memberof UploadRaindropCoverResponseItem
     */
    'sort': number;
    /**
     *
     * @type {Array<string>}
     * @memberof UploadRaindropCoverResponseItem
     */
    'tags': Array<string>;
    /**
     *
     * @type {string}
     * @memberof UploadRaindropCoverResponseItem
     */
    'title': string;
    /**
     *
     * @type {string}
     * @memberof UploadRaindropCoverResponseItem
     */
    'type': string;
    /**
     *
     * @type {UserRef}
     * @memberof UploadRaindropCoverResponseItem
     */
    'user': UserRef;
}

/**
 *
 * @export
 * @interface User
 */
declare interface User {
    /**
     *
     * @type {number}
     * @memberof User
     */
    '_id': number;
    /**
     *
     * @type {UserConfig}
     * @memberof User
     */
    'config': UserConfig;
    /**
     *
     * @type {UserDropbox}
     * @memberof User
     */
    'dropbox'?: UserDropbox;
    /**
     *
     * @type {string}
     * @memberof User
     */
    'email': string;
    /**
     *
     * @type {string}
     * @memberof User
     */
    'email_MD5'?: string;
    /**
     *
     * @type {UserFiles}
     * @memberof User
     */
    'files': UserFiles;
    /**
     *
     * @type {string}
     * @memberof User
     */
    'fullName': string;
    /**
     *
     * @type {UserDropbox}
     * @memberof User
     */
    'gdrive'?: UserDropbox;
    /**
     *
     * @type {Array<Group>}
     * @memberof User
     */
    'groups': Array<Group>;
    /**
     *
     * @type {boolean}
     * @memberof User
     */
    'password': boolean;
    /**
     *
     * @type {boolean}
     * @memberof User
     */
    'pro': boolean;
    /**
     *
     * @type {string}
     * @memberof User
     */
    'proExpire'?: string;
    /**
     *
     * @type {string}
     * @memberof User
     */
    'registered': string;
    /**
     *
     * @type {UserTfa}
     * @memberof User
     */
    'tfa'?: UserTfa;
    /**
     *
     * @type {string}
     * @memberof User
     */
    'name'?: string;
    /**
     *
     * @type {string}
     * @memberof User
     */
    'avatar'?: string;
    /**
     *
     * @type {string}
     * @memberof User
     */
    'lastAction'?: string;
    /**
     *
     * @type {string}
     * @memberof User
     */
    'lastVisit'?: string;
    /**
     *
     * @type {string}
     * @memberof User
     */
    'lastUpdate'?: string;
}

/**
 * UserApi - object-oriented interface
 * @export
 * @class UserApi
 * @extends {BaseAPI}
 */
declare class UserApi extends BaseAPI {
    /**
     *
     * @param {ConnectSocialNetworkProviderProviderEnum} provider
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof UserApi
     */
    connectSocialNetworkProvider(provider: ConnectSocialNetworkProviderProviderEnum, options?: RawAxiosRequestConfig): Promise<AxiosResponse<void, any>>;
    /**
     *
     * @param {DisconnectSocialNetworkProviderProviderEnum} provider
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof UserApi
     */
    disconnectSocialNetworkProvider(provider: DisconnectSocialNetworkProviderProviderEnum, options?: RawAxiosRequestConfig): Promise<AxiosResponse<void, any>>;
    /**
     *
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof UserApi
     */
    getCurrentUser(options?: RawAxiosRequestConfig): Promise<AxiosResponse<GetCurrentUserResponse, any>>;
    /**
     *
     * @param {number} name
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof UserApi
     */
    getPublicUserByName(name: number, options?: RawAxiosRequestConfig): Promise<AxiosResponse<GetPublicUserByNameResponse, any>>;
    /**
     *
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof UserApi
     */
    getSystemCollectionStats(options?: RawAxiosRequestConfig): Promise<AxiosResponse<GetSystemCollectionStatsResponse, any>>;
    /**
     *
     * @param {UpdateCurrentUserRequest} [updateCurrentUserRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof UserApi
     */
    updateCurrentUser(updateCurrentUserRequest?: UpdateCurrentUserRequest, options?: RawAxiosRequestConfig): Promise<AxiosResponse<UpdateCurrentUserResponse, any>>;
}

/**
 * UserApi - axios parameter creator
 * @export
 */
declare const UserApiAxiosParamCreator: (configuration?: Configuration) => {
    /**
     *
     * @param {ConnectSocialNetworkProviderProviderEnum} provider
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    connectSocialNetworkProvider: (provider: ConnectSocialNetworkProviderProviderEnum, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     *
     * @param {DisconnectSocialNetworkProviderProviderEnum} provider
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    disconnectSocialNetworkProvider: (provider: DisconnectSocialNetworkProviderProviderEnum, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     *
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getCurrentUser: (options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     *
     * @param {number} name
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getPublicUserByName: (name: number, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     *
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getSystemCollectionStats: (options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     *
     * @param {UpdateCurrentUserRequest} [updateCurrentUserRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    updateCurrentUser: (updateCurrentUserRequest?: UpdateCurrentUserRequest, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
};

/**
 * UserApi - factory interface
 * @export
 */
declare const UserApiFactory: (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) => {
    /**
     *
     * @param {ConnectSocialNetworkProviderProviderEnum} provider
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    connectSocialNetworkProvider(provider: ConnectSocialNetworkProviderProviderEnum, options?: any): AxiosPromise<void>;
    /**
     *
     * @param {DisconnectSocialNetworkProviderProviderEnum} provider
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    disconnectSocialNetworkProvider(provider: DisconnectSocialNetworkProviderProviderEnum, options?: any): AxiosPromise<void>;
    /**
     *
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getCurrentUser(options?: any): AxiosPromise<GetCurrentUserResponse>;
    /**
     *
     * @param {number} name
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getPublicUserByName(name: number, options?: any): AxiosPromise<GetPublicUserByNameResponse>;
    /**
     *
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getSystemCollectionStats(options?: any): AxiosPromise<GetSystemCollectionStatsResponse>;
    /**
     *
     * @param {UpdateCurrentUserRequest} [updateCurrentUserRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    updateCurrentUser(updateCurrentUserRequest?: UpdateCurrentUserRequest, options?: any): AxiosPromise<UpdateCurrentUserResponse>;
};

/**
 * UserApi - functional programming interface
 * @export
 */
declare const UserApiFp: (configuration?: Configuration) => {
    /**
     *
     * @param {ConnectSocialNetworkProviderProviderEnum} provider
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    connectSocialNetworkProvider(provider: ConnectSocialNetworkProviderProviderEnum, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>>;
    /**
     *
     * @param {DisconnectSocialNetworkProviderProviderEnum} provider
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    disconnectSocialNetworkProvider(provider: DisconnectSocialNetworkProviderProviderEnum, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>>;
    /**
     *
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getCurrentUser(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<GetCurrentUserResponse>>;
    /**
     *
     * @param {number} name
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getPublicUserByName(name: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<GetPublicUserByNameResponse>>;
    /**
     *
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getSystemCollectionStats(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<GetSystemCollectionStatsResponse>>;
    /**
     *
     * @param {UpdateCurrentUserRequest} [updateCurrentUserRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    updateCurrentUser(updateCurrentUserRequest?: UpdateCurrentUserRequest, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<UpdateCurrentUserResponse>>;
};

/**
 *
 * @export
 * @interface UserConfig
 */
declare interface UserConfig {
    /**
     *
     * @type {string}
     * @memberof UserConfig
     */
    'broken_level': string;
    /**
     *
     * @type {string}
     * @memberof UserConfig
     */
    'font_color'?: string;
    /**
     *
     * @type {number}
     * @memberof UserConfig
     */
    'font_size': number;
    /**
     *
     * @type {string}
     * @memberof UserConfig
     */
    'lang'?: string;
    /**
     *
     * @type {number}
     * @memberof UserConfig
     */
    'last_collection': number;
    /**
     *
     * @type {Array<string>}
     * @memberof UserConfig
     */
    'raindrops_buttons'?: Array<string>;
    /**
     *
     * @type {Array<string>}
     * @memberof UserConfig
     */
    'raindrops_hide'?: Array<string>;
    /**
     *
     * @type {boolean}
     * @memberof UserConfig
     */
    'raindrops_search_by_score'?: boolean;
    /**
     *
     * @type {boolean}
     * @memberof UserConfig
     */
    'raindrops_search_incollection'?: boolean;
    /**
     *
     * @type {string}
     * @memberof UserConfig
     */
    'raindrops_sort': string;
    /**
     *
     * @type {string}
     * @memberof UserConfig
     */
    'default_collection_view'?: string;
    /**
     *
     * @type {boolean}
     * @memberof UserConfig
     */
    'nested_view_legacy'?: boolean;
    /**
     *
     * @type {number}
     * @memberof UserConfig
     */
    'add_default_collection'?: number;
    /**
     *
     * @type {Array<string>}
     * @memberof UserConfig
     */
    'acknowledge'?: Array<string>;
    /**
     *
     * @type {boolean}
     * @memberof UserConfig
     */
    'ai_suggestions'?: boolean;
    /**
     *
     * @type {boolean}
     * @memberof UserConfig
     */
    'filters_hide'?: boolean;
}

/**
 *
 * @export
 * @interface UserDropbox
 */
declare interface UserDropbox {
    /**
     *
     * @type {boolean}
     * @memberof UserDropbox
     */
    'enabled': boolean;
}

/**
 *
 * @export
 * @interface UserFiles
 */
declare interface UserFiles {
    /**
     *
     * @type {number}
     * @memberof UserFiles
     */
    'used': number;
    /**
     *
     * @type {number}
     * @memberof UserFiles
     */
    'size': number;
    /**
     *
     * @type {string}
     * @memberof UserFiles
     */
    'lastCheckPoint': string;
}

/**
 *
 * @export
 * @interface UserRef
 */
declare interface UserRef {
    /**
     *
     * @type {number}
     * @memberof UserRef
     */
    '$id': number;
    /**
     *
     * @type {string}
     * @memberof UserRef
     */
    '$ref': string;
}

/**
 *
 * @export
 * @interface UserTfa
 */
declare interface UserTfa {
    /**
     *
     * @type {boolean}
     * @memberof UserTfa
     */
    'enabled'?: boolean;
}

declare namespace utils {
    export {
        tree
    }
}
export { utils }

export { }


declare module "vitest" {
    interface TestContext {
        axiosInstance: AxiosInstance;
        mockAxios: MockAdapter;
        client: Raindrop;
        polly: Polly;
        generateTypeTest: RegisterHook;
        resetData: undefined;
        setupTools: SetupTools;
    }
}
