/**
 * Represents a collaborator for an entry.
 */
export type Collaborator = {
    /**
     * The collaborator actions for the shared asset.
     */
    actionIds: Array<string>;
    /**
     * Block of actions allowed by the user making the request.
     */
    readonly actions?: {
        [key: string]: {
            [key: string]: unknown;
        };
    };
    creator?: Creator;
    /**
     * The expiration date to be a collaborator of the asset.
     */
    dateExpired?: string;
    /**
     * The collaborator external reference code.
     */
    readonly externalReferenceCode?: string;
    /**
     * The collaborator ID.
     */
    id?: number;
    /**
     * The collaborator name.
     */
    readonly name?: string;
    /**
     * The collaborator portrait.
     */
    readonly portrait?: string;
    /**
     * If the collaborator can share or not the asset.
     */
    share?: boolean;
    /**
     * The collaborator type.
     */
    type: string;
    readonly 'x-class-name'?: string;
};
/**
 * The object entry folder's creator.
 */
export type Creator = {
    /**
     * The author's additional name (e.g., middle name).
     */
    readonly additionalName?: string;
    /**
     * The type of the content.
     */
    readonly contentType?: string;
    /**
     * The external reference code of the author.
     */
    readonly externalReferenceCode?: string;
    /**
     * The author's surname.
     */
    readonly familyName?: string;
    /**
     * The author's first name.
     */
    readonly givenName?: string;
    /**
     * The author's ID.
     */
    readonly id?: number;
    /**
     * A relative URL to the author's profile image.
     */
    readonly image?: string;
    /**
     * The author's full name.
     */
    readonly name?: string;
    /**
     * A relative URL to the author's user profile. Optional field, can be embedded with nestedFields.
     */
    readonly profileURL?: string;
    /**
     * A list of userGroups information.
     */
    userGroupBriefs?: Array<UserGroupBrief>;
    readonly 'x-class-name'?: string;
};
/**
 * A list of userGroups information.
 */
export type UserGroupBrief = {
    /**
     * The ID of the user group.
     */
    readonly id?: number;
    /**
     * The name of the user group.
     */
    readonly name?: string;
    readonly 'x-class-name'?: string;
};
export type Facet = {
    facetCriteria?: string;
    facetValues?: Array<FacetValue>;
};
export type FacetValue = {
    numberOfOccurrences?: number;
    term?: string;
};
export type PageCollaborator = {
    items?: Array<Collaborator>;
    lastPage?: number;
    totalCount?: number;
    actions?: {
        [key: string]: {
            [key: string]: string;
        };
    };
    page?: number;
    facets?: Array<Facet>;
    pageSize?: number;
};
/**
 * Represents a object entry folder that contains objects entries and other object entry folders.
 */
export type ObjectEntryFolder = {
    /**
     * Block of actions allowed by the user making the request.
     */
    readonly actions?: {
        [key: string]: {
            [key: string]: string;
        };
    };
    creator?: Creator;
    /**
     * The object entry folder's creation date.
     */
    readonly dateCreated?: string;
    /**
     * The last time a field of the folder changed.
     */
    readonly dateModified?: string;
    /**
     * The object entry folder's description.
     */
    description?: string;
    /**
     * The object entry folder's external reference code.
     */
    externalReferenceCode?: string;
    /**
     * The object entry folder's ID.
     */
    readonly id?: number;
    /**
     * The object entry folder's label.
     */
    label?: string;
    /**
     * The localized object entry folder's label.
     */
    label_i18n?: {
        [key: string]: string;
    };
    /**
     * The number of object entries in this object entry folder.
     */
    readonly numberOfObjectEntries?: number;
    /**
     * The number of this object entry folder's child object entry folders.
     */
    readonly numberOfObjectEntryFolders?: number;
    parentObjectEntryFolderBrief?: ParentObjectEntryFolderBrief;
    /**
     * The parent entry folder's external reference code, if it exists.
     */
    parentObjectEntryFolderExternalReferenceCode?: string;
    /**
     * The ID of the object entry folder's parent, if it exists.
     */
    parentObjectEntryFolderId?: number;
    permissions?: Array<Permission>;
    /**
     * The scope key of the object entry folder.
     */
    readonly scopeKey?: string;
    /**
     * The object entry folder's main title/name.
     */
    title: string;
    viewableBy?: 'Anyone' | 'Members' | 'Owner';
    readonly 'x-class-name'?: string;
};
/**
 * The object entry folder's parent, if it exists.
 */
export type ParentObjectEntryFolderBrief = {
    /**
     * The parent object entry folder's external reference code.
     */
    externalReferenceCode?: string;
    /**
     * The parent object entry folder's ID.
     */
    id?: number;
    /**
     * The parent object entry folder's label.
     */
    label?: string;
    /**
     * The localized parent object entry folder's label.
     */
    label_i18n?: {
        [key: string]: string;
    };
    /**
     * The parent object entry folder's main title/name.
     */
    title?: string;
    readonly 'x-class-name'?: string;
};
export type Permission = {
    actionIds?: Array<string>;
    roleExternalReferenceCode?: string;
    roleName?: string;
    roleType?: string;
};
export type PagePermission = {
    items?: Array<Permission>;
    lastPage?: number;
    totalCount?: number;
    actions?: {
        [key: string]: {
            [key: string]: string;
        };
    };
    page?: number;
    facets?: Array<Facet>;
    pageSize?: number;
};
export type PageObjectEntryFolder = {
    items?: Array<ObjectEntryFolder>;
    lastPage?: number;
    totalCount?: number;
    actions?: {
        [key: string]: {
            [key: string]: string;
        };
    };
    page?: number;
    facets?: Array<Facet>;
    pageSize?: number;
};
export type DeleteObjectEntryFolderCollaboratorByTypeCollaboratorData = {
    body?: never;
    path: {
        objectEntryFolderId: string;
        type: string;
        collaboratorId: string;
    };
    query?: never;
    url: '/o/headless-object/v1.0/object-entry-folders/{objectEntryFolderId}/collaborators/by-type/{type}/{collaboratorId}';
};
export type DeleteObjectEntryFolderCollaboratorByTypeCollaboratorResponses = {
    /**
     * default response
     */
    default: unknown;
};
export type GetObjectEntryFolderCollaboratorByTypeCollaboratorData = {
    body?: never;
    path: {
        objectEntryFolderId: string;
        type: string;
        collaboratorId: string;
    };
    query?: {
        fields?: string;
        nestedFields?: string;
        restrictFields?: string;
    };
    url: '/o/headless-object/v1.0/object-entry-folders/{objectEntryFolderId}/collaborators/by-type/{type}/{collaboratorId}';
};
export type GetObjectEntryFolderCollaboratorByTypeCollaboratorResponses = {
    /**
     * default response
     */
    default: Collaborator;
};
export type GetObjectEntryFolderCollaboratorByTypeCollaboratorResponse = GetObjectEntryFolderCollaboratorByTypeCollaboratorResponses[keyof GetObjectEntryFolderCollaboratorByTypeCollaboratorResponses];
export type PutObjectEntryFolderCollaboratorByTypeCollaboratorData = {
    body?: Collaborator;
    path: {
        objectEntryFolderId: string;
        type: string;
        collaboratorId: string;
    };
    query?: never;
    url: '/o/headless-object/v1.0/object-entry-folders/{objectEntryFolderId}/collaborators/by-type/{type}/{collaboratorId}';
};
export type PutObjectEntryFolderCollaboratorByTypeCollaboratorResponses = {
    /**
     * default response
     */
    default: Collaborator;
};
export type PutObjectEntryFolderCollaboratorByTypeCollaboratorResponse = PutObjectEntryFolderCollaboratorByTypeCollaboratorResponses[keyof PutObjectEntryFolderCollaboratorByTypeCollaboratorResponses];
export type DeleteScopeScopeKeyObjectEntryFolderByExternalReferenceCodeCollaboratorByTypeCollaboratorData = {
    body?: never;
    path: {
        scopeKey: string;
        externalReferenceCode: string;
        type: string;
        collaboratorId: string;
    };
    query?: never;
    url: '/o/headless-object/v1.0/scopes/{scopeKey}/object-entry-folders/by-external-reference-code/{externalReferenceCode}/collaborators/by-type/{type}/{collaboratorId}';
};
export type DeleteScopeScopeKeyObjectEntryFolderByExternalReferenceCodeCollaboratorByTypeCollaboratorResponses = {
    /**
     * default response
     */
    default: unknown;
};
export type GetScopeScopeKeyObjectEntryFolderByExternalReferenceCodeCollaboratorByTypeCollaboratorData = {
    body?: never;
    path: {
        scopeKey: string;
        externalReferenceCode: string;
        type: string;
        collaboratorId: string;
    };
    query?: {
        fields?: string;
        nestedFields?: string;
        restrictFields?: string;
    };
    url: '/o/headless-object/v1.0/scopes/{scopeKey}/object-entry-folders/by-external-reference-code/{externalReferenceCode}/collaborators/by-type/{type}/{collaboratorId}';
};
export type GetScopeScopeKeyObjectEntryFolderByExternalReferenceCodeCollaboratorByTypeCollaboratorResponses = {
    /**
     * default response
     */
    default: Collaborator;
};
export type GetScopeScopeKeyObjectEntryFolderByExternalReferenceCodeCollaboratorByTypeCollaboratorResponse = GetScopeScopeKeyObjectEntryFolderByExternalReferenceCodeCollaboratorByTypeCollaboratorResponses[keyof GetScopeScopeKeyObjectEntryFolderByExternalReferenceCodeCollaboratorByTypeCollaboratorResponses];
export type PutScopeScopeKeyObjectEntryFolderByExternalReferenceCodeCollaboratorByTypeCollaboratorData = {
    body?: Collaborator;
    path: {
        scopeKey: string;
        externalReferenceCode: string;
        type: string;
        collaboratorId: string;
    };
    query?: never;
    url: '/o/headless-object/v1.0/scopes/{scopeKey}/object-entry-folders/by-external-reference-code/{externalReferenceCode}/collaborators/by-type/{type}/{collaboratorId}';
};
export type PutScopeScopeKeyObjectEntryFolderByExternalReferenceCodeCollaboratorByTypeCollaboratorResponses = {
    /**
     * default response
     */
    default: Collaborator;
};
export type PutScopeScopeKeyObjectEntryFolderByExternalReferenceCodeCollaboratorByTypeCollaboratorResponse = PutScopeScopeKeyObjectEntryFolderByExternalReferenceCodeCollaboratorByTypeCollaboratorResponses[keyof PutScopeScopeKeyObjectEntryFolderByExternalReferenceCodeCollaboratorByTypeCollaboratorResponses];
export type GetObjectEntryFolderCollaboratorsPageData = {
    body?: never;
    path: {
        objectEntryFolderId: string;
    };
    query?: {
        fields?: string;
        nestedFields?: string;
        page?: string;
        pageSize?: string;
        restrictFields?: string;
    };
    url: '/o/headless-object/v1.0/object-entry-folders/{objectEntryFolderId}/collaborators';
};
export type GetObjectEntryFolderCollaboratorsPageResponses = {
    /**
     * default response
     */
    default: PageCollaborator;
};
export type GetObjectEntryFolderCollaboratorsPageResponse = GetObjectEntryFolderCollaboratorsPageResponses[keyof GetObjectEntryFolderCollaboratorsPageResponses];
export type PostObjectEntryFolderCollaboratorsPageData = {
    body?: Array<Collaborator>;
    path: {
        objectEntryFolderId: string;
    };
    query?: never;
    url: '/o/headless-object/v1.0/object-entry-folders/{objectEntryFolderId}/collaborators';
};
export type PostObjectEntryFolderCollaboratorsPageResponses = {
    /**
     * default response
     */
    default: PageCollaborator;
};
export type PostObjectEntryFolderCollaboratorsPageResponse = PostObjectEntryFolderCollaboratorsPageResponses[keyof PostObjectEntryFolderCollaboratorsPageResponses];
export type GetScopeScopeKeyObjectEntryFolderByExternalReferenceCodeCollaboratorsPageData = {
    body?: never;
    path: {
        scopeKey: string;
        externalReferenceCode: string;
    };
    query?: {
        fields?: string;
        nestedFields?: string;
        page?: string;
        pageSize?: string;
        restrictFields?: string;
    };
    url: '/o/headless-object/v1.0/scopes/{scopeKey}/object-entry-folders/by-external-reference-code/{externalReferenceCode}/collaborators';
};
export type GetScopeScopeKeyObjectEntryFolderByExternalReferenceCodeCollaboratorsPageResponses = {
    /**
     * default response
     */
    default: PageCollaborator;
};
export type GetScopeScopeKeyObjectEntryFolderByExternalReferenceCodeCollaboratorsPageResponse = GetScopeScopeKeyObjectEntryFolderByExternalReferenceCodeCollaboratorsPageResponses[keyof GetScopeScopeKeyObjectEntryFolderByExternalReferenceCodeCollaboratorsPageResponses];
export type PostScopeScopeKeyObjectEntryFolderByExternalReferenceCodeCollaboratorsPageData = {
    body?: Array<Collaborator>;
    path: {
        scopeKey: string;
        externalReferenceCode: string;
    };
    query?: never;
    url: '/o/headless-object/v1.0/scopes/{scopeKey}/object-entry-folders/by-external-reference-code/{externalReferenceCode}/collaborators';
};
export type PostScopeScopeKeyObjectEntryFolderByExternalReferenceCodeCollaboratorsPageResponses = {
    /**
     * default response
     */
    default: PageCollaborator;
};
export type PostScopeScopeKeyObjectEntryFolderByExternalReferenceCodeCollaboratorsPageResponse = PostScopeScopeKeyObjectEntryFolderByExternalReferenceCodeCollaboratorsPageResponses[keyof PostScopeScopeKeyObjectEntryFolderByExternalReferenceCodeCollaboratorsPageResponses];
export type PostObjectEntryFolderCollaboratorsPageExportBatchData = {
    body?: never;
    path: {
        objectEntryFolderId: string;
    };
    query?: {
        callbackURL?: string;
        contentType?: string;
        fieldNames?: string;
    };
    url: '/o/headless-object/v1.0/object-entry-folders/{objectEntryFolderId}/collaborators/export-batch';
};
export type PostObjectEntryFolderCollaboratorsPageExportBatchResponses = {
    /**
     * default response
     */
    default: unknown;
};
export type DeleteObjectEntryFolderData = {
    body?: never;
    path: {
        objectEntryFolderId: string;
    };
    query?: never;
    url: '/o/headless-object/v1.0/object-entry-folders/{objectEntryFolderId}';
};
export type DeleteObjectEntryFolderResponses = {
    /**
     * default response
     */
    default: unknown;
};
export type GetObjectEntryFolderData = {
    body?: never;
    path: {
        objectEntryFolderId: string;
    };
    query?: {
        fields?: string;
        nestedFields?: string;
        restrictFields?: string;
    };
    url: '/o/headless-object/v1.0/object-entry-folders/{objectEntryFolderId}';
};
export type GetObjectEntryFolderResponses = {
    /**
     * default response
     */
    default: ObjectEntryFolder;
};
export type GetObjectEntryFolderResponse = GetObjectEntryFolderResponses[keyof GetObjectEntryFolderResponses];
export type PatchObjectEntryFolderData = {
    body?: ObjectEntryFolder;
    path: {
        objectEntryFolderId: string;
    };
    query?: never;
    url: '/o/headless-object/v1.0/object-entry-folders/{objectEntryFolderId}';
};
export type PatchObjectEntryFolderResponses = {
    /**
     * default response
     */
    default: ObjectEntryFolder;
};
export type PatchObjectEntryFolderResponse = PatchObjectEntryFolderResponses[keyof PatchObjectEntryFolderResponses];
export type PutObjectEntryFolderData = {
    body?: ObjectEntryFolder;
    path: {
        objectEntryFolderId: string;
    };
    query?: never;
    url: '/o/headless-object/v1.0/object-entry-folders/{objectEntryFolderId}';
};
export type PutObjectEntryFolderResponses = {
    /**
     * default response
     */
    default: ObjectEntryFolder;
};
export type PutObjectEntryFolderResponse = PutObjectEntryFolderResponses[keyof PutObjectEntryFolderResponses];
export type DeleteObjectEntryFolderBatchData = {
    body?: {
        [key: string]: unknown;
    };
    path?: never;
    query?: {
        callbackURL?: string;
    };
    url: '/o/headless-object/v1.0/object-entry-folders/batch';
};
export type DeleteObjectEntryFolderBatchResponses = {
    /**
     * default response
     */
    default: unknown;
};
export type PutObjectEntryFolderBatchData = {
    body?: {
        [key: string]: unknown;
    };
    path?: never;
    query?: {
        callbackURL?: string;
    };
    url: '/o/headless-object/v1.0/object-entry-folders/batch';
};
export type PutObjectEntryFolderBatchResponses = {
    /**
     * default response
     */
    default: unknown;
};
export type DeleteScopeScopeKeyObjectEntryFolderByExternalReferenceCodeData = {
    body?: never;
    path: {
        scopeKey: string;
        externalReferenceCode: string;
    };
    query?: never;
    url: '/o/headless-object/v1.0/scopes/{scopeKey}/object-entry-folder/by-external-reference-code/{externalReferenceCode}';
};
export type DeleteScopeScopeKeyObjectEntryFolderByExternalReferenceCodeResponses = {
    /**
     * default response
     */
    default: unknown;
};
export type GetScopeScopeKeyObjectEntryFolderByExternalReferenceCodeData = {
    body?: never;
    path: {
        scopeKey: string;
        externalReferenceCode: string;
    };
    query?: {
        fields?: string;
        nestedFields?: string;
        restrictFields?: string;
    };
    url: '/o/headless-object/v1.0/scopes/{scopeKey}/object-entry-folder/by-external-reference-code/{externalReferenceCode}';
};
export type GetScopeScopeKeyObjectEntryFolderByExternalReferenceCodeResponses = {
    /**
     * default response
     */
    default: ObjectEntryFolder;
};
export type GetScopeScopeKeyObjectEntryFolderByExternalReferenceCodeResponse = GetScopeScopeKeyObjectEntryFolderByExternalReferenceCodeResponses[keyof GetScopeScopeKeyObjectEntryFolderByExternalReferenceCodeResponses];
export type PatchScopeScopeKeyObjectEntryFolderByExternalReferenceCodeData = {
    body?: ObjectEntryFolder;
    path: {
        scopeKey: string;
        externalReferenceCode: string;
    };
    query?: never;
    url: '/o/headless-object/v1.0/scopes/{scopeKey}/object-entry-folder/by-external-reference-code/{externalReferenceCode}';
};
export type PatchScopeScopeKeyObjectEntryFolderByExternalReferenceCodeResponses = {
    /**
     * default response
     */
    default: ObjectEntryFolder;
};
export type PatchScopeScopeKeyObjectEntryFolderByExternalReferenceCodeResponse = PatchScopeScopeKeyObjectEntryFolderByExternalReferenceCodeResponses[keyof PatchScopeScopeKeyObjectEntryFolderByExternalReferenceCodeResponses];
export type PutScopeScopeKeyObjectEntryFolderByExternalReferenceCodeData = {
    body?: ObjectEntryFolder;
    path: {
        scopeKey: string;
        externalReferenceCode: string;
    };
    query?: never;
    url: '/o/headless-object/v1.0/scopes/{scopeKey}/object-entry-folder/by-external-reference-code/{externalReferenceCode}';
};
export type PutScopeScopeKeyObjectEntryFolderByExternalReferenceCodeResponses = {
    /**
     * default response
     */
    default: ObjectEntryFolder;
};
export type PutScopeScopeKeyObjectEntryFolderByExternalReferenceCodeResponse = PutScopeScopeKeyObjectEntryFolderByExternalReferenceCodeResponses[keyof PutScopeScopeKeyObjectEntryFolderByExternalReferenceCodeResponses];
export type GetObjectEntryFolderPermissionsPageData = {
    body?: never;
    path: {
        objectEntryFolderId: string;
    };
    query?: {
        fields?: string;
        nestedFields?: string;
        restrictFields?: string;
        roleNames?: string;
    };
    url: '/o/headless-object/v1.0/object-entry-folders/{objectEntryFolderId}/permissions';
};
export type GetObjectEntryFolderPermissionsPageResponses = {
    /**
     * default response
     */
    default: PagePermission;
};
export type GetObjectEntryFolderPermissionsPageResponse = GetObjectEntryFolderPermissionsPageResponses[keyof GetObjectEntryFolderPermissionsPageResponses];
export type PutObjectEntryFolderPermissionsPageData = {
    body?: Array<Permission>;
    path: {
        objectEntryFolderId: string;
    };
    query?: never;
    url: '/o/headless-object/v1.0/object-entry-folders/{objectEntryFolderId}/permissions';
};
export type PutObjectEntryFolderPermissionsPageResponses = {
    /**
     * default response
     */
    default: PagePermission;
};
export type PutObjectEntryFolderPermissionsPageResponse = PutObjectEntryFolderPermissionsPageResponses[keyof PutObjectEntryFolderPermissionsPageResponses];
export type GetScopeScopeKeyObjectEntryFoldersPageData = {
    body?: never;
    path: {
        scopeKey: string;
    };
    query?: {
        aggregationTerms?: string;
        fields?: string;
        filter?: string;
        flatten?: string;
        nestedFields?: string;
        page?: string;
        pageSize?: string;
        restrictFields?: string;
        search?: string;
        sort?: string;
    };
    url: '/o/headless-object/v1.0/scopes/{scopeKey}/object-entry-folders';
};
export type GetScopeScopeKeyObjectEntryFoldersPageResponses = {
    /**
     * default response
     */
    default: PageObjectEntryFolder;
};
export type GetScopeScopeKeyObjectEntryFoldersPageResponse = GetScopeScopeKeyObjectEntryFoldersPageResponses[keyof GetScopeScopeKeyObjectEntryFoldersPageResponses];
export type PostScopeScopeKeyObjectEntryFolderData = {
    body?: ObjectEntryFolder;
    path: {
        scopeKey: string;
    };
    query?: never;
    url: '/o/headless-object/v1.0/scopes/{scopeKey}/object-entry-folders';
};
export type PostScopeScopeKeyObjectEntryFolderResponses = {
    /**
     * default response
     */
    default: ObjectEntryFolder;
};
export type PostScopeScopeKeyObjectEntryFolderResponse = PostScopeScopeKeyObjectEntryFolderResponses[keyof PostScopeScopeKeyObjectEntryFolderResponses];
export type ClientOptions = {
    baseUrl: 'http://localhost:8080' | (string & {});
};
