import type { Configuration } from '../configuration';
import type { AxiosPromise, AxiosInstance, RawAxiosRequestConfig } from 'axios';
import { type RequestArgs, BaseAPI } from '../base';
import type { MembershipRead } from '../models';
import type { PaginatedMembershipReadList } from '../models';
import type { PatchedMembershipWriteRequest } from '../models';
export declare const MembershipsApiAxiosParamCreator: (configuration?: Configuration) => {
    membershipsDestroy: (id: number, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    membershipsList: (xOrganization?: string, filter?: string, org?: string, orgId?: number, page?: number, pageSize?: number, role?: MembershipsListRoleEnum, search?: string, sort?: string, user?: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    membershipsPartialUpdate: (id: number, patchedMembershipWriteRequest?: PatchedMembershipWriteRequest, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    membershipsRetrieve: (id: number, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
};
export declare const MembershipsApiFp: (configuration?: Configuration) => {
    membershipsDestroy(id: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>>;
    membershipsList(xOrganization?: string, filter?: string, org?: string, orgId?: number, page?: number, pageSize?: number, role?: MembershipsListRoleEnum, search?: string, sort?: string, user?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PaginatedMembershipReadList>>;
    membershipsPartialUpdate(id: number, patchedMembershipWriteRequest?: PatchedMembershipWriteRequest, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<MembershipRead>>;
    membershipsRetrieve(id: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<MembershipRead>>;
};
export declare const MembershipsApiFactory: (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) => {
    membershipsDestroy(requestParameters: MembershipsApiMembershipsDestroyRequest, options?: RawAxiosRequestConfig): AxiosPromise<void>;
    membershipsList(requestParameters?: MembershipsApiMembershipsListRequest, options?: RawAxiosRequestConfig): AxiosPromise<PaginatedMembershipReadList>;
    membershipsPartialUpdate(requestParameters: MembershipsApiMembershipsPartialUpdateRequest, options?: RawAxiosRequestConfig): AxiosPromise<MembershipRead>;
    membershipsRetrieve(requestParameters: MembershipsApiMembershipsRetrieveRequest, options?: RawAxiosRequestConfig): AxiosPromise<MembershipRead>;
};
export interface MembershipsApiMembershipsDestroyRequest {
    readonly id: number;
}
export interface MembershipsApiMembershipsListRequest {
    readonly xOrganization?: string;
    readonly filter?: string;
    readonly org?: string;
    readonly orgId?: number;
    readonly page?: number;
    readonly pageSize?: number;
    readonly role?: MembershipsListRoleEnum;
    readonly search?: string;
    readonly sort?: string;
    readonly user?: string;
}
export interface MembershipsApiMembershipsPartialUpdateRequest {
    readonly id: number;
    readonly patchedMembershipWriteRequest?: PatchedMembershipWriteRequest;
}
export interface MembershipsApiMembershipsRetrieveRequest {
    readonly id: number;
}
export declare class MembershipsApi extends BaseAPI {
    membershipsDestroy(requestParameters: MembershipsApiMembershipsDestroyRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<void, any>>;
    membershipsList(requestParameters?: MembershipsApiMembershipsListRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<PaginatedMembershipReadList, any>>;
    membershipsPartialUpdate(requestParameters: MembershipsApiMembershipsPartialUpdateRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<MembershipRead, any>>;
    membershipsRetrieve(requestParameters: MembershipsApiMembershipsRetrieveRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<MembershipRead, any>>;
}
export declare const MembershipsListRoleEnum: {
    readonly Worker: "worker";
    readonly Supervisor: "supervisor";
    readonly Maintainer: "maintainer";
    readonly Owner: "owner";
};
export type MembershipsListRoleEnum = typeof MembershipsListRoleEnum[keyof typeof MembershipsListRoleEnum];
