import { TFactoryConstructor } from "../../../types";
import { IResourceEntity, IResourceFactory, IResourcePagination } from "../../../interfaces/api";
import { IRequestOptions } from "../../../interfaces/common";
import { CatalogElementCriteria } from "../../../interfaces/catalog";
import { ICatalogElement } from "../../models/CatalogElement";
export interface IHasCatalogElementsFactory<T extends IResourceEntity<IResourceFactory<ICatalogElement>>> extends IResourceFactory<ICatalogElement> {
    elements(identity: number, criteria?: Partial<CatalogElementCriteria>, options?: IRequestOptions): Promise<IResourcePagination<ICatalogElement>>;
}
export declare function hasCatalogElements<T extends IResourceEntity<IResourceFactory<T>>>(Base: TFactoryConstructor<T>): TFactoryConstructor<T>;
