import { State } from '../shared/State';
import { IdObjectSkeletonInterface, PagedResult, PatchOperationInterface } from './ApiTypes';
export declare const DEFAULT_PAGE_SIZE: number;
/**
 * Get internal object
 * @param {string} type internal object type, e.g. alpha_user or user
 * @param {string} id internal object id
 * @param {string[]} id array of fields to include
 * @param {State} state library state
 * @returns {Promise<IdObjectSkeletonInterface>} a promise that resolves to an ObjectSkeletonInterface
 */
export declare function getInternalObject({ type, id, fields, state, }: {
    type: string;
    id: string;
    fields: string[];
    state: State;
}): Promise<IdObjectSkeletonInterface>;
/**
 * Create internal object with server-generated id
 * @param {string} ioType internal object type
 * @param {IdObjectSkeletonInterface} ioData internal object data
 * @param {State} state library state
 * @returns {Promise<IdObjectSkeletonInterface>} a promise that resolves to an object containing a internal object
 */
export declare function createInternalObject({ ioType, ioData, state, }: {
    ioType: string;
    ioData: IdObjectSkeletonInterface;
    state: State;
}): Promise<IdObjectSkeletonInterface>;
/**
 * Create or update internal object
 * @param {string} id internal object id
 * @param {IdObjectSkeletonInterface} ioData internal object
 * @param {boolean} failIfExists fail if exists
 * @param {State} state library state
 * @returns {Promise<IdObjectSkeletonInterface>} a promise that resolves to an object containing a internal object
 */
export declare function putInternalObject({ type, id, ioData, failIfExists, state, }: {
    type: string;
    id: string;
    ioData: IdObjectSkeletonInterface;
    failIfExists?: boolean;
    state: State;
}): Promise<IdObjectSkeletonInterface>;
/**
 * Partially update an internal object, with an array of operations.
 * @param {string} type internal object type
 * @param {string} id internal object id
 * @param {PatchOperationInterface[]} operations array of operations
 * @param {string} rev revision
 * @param {State} state library state
 * @returns {Promise<IdObjectSkeletonInterface>} a promise that resolves to an object containing an internal object
 */
export declare function patchInternalObject({ type, id, operations: operations, rev, state, }: {
    type: string;
    id: string;
    operations: PatchOperationInterface[];
    rev?: string;
    state: State;
}): Promise<IdObjectSkeletonInterface>;
/**
 * Query internal object
 * @param {string} type internal object type, e.g. alpha_user or user
 * @param {string} filter CREST search filter
 * @param {string[]} id array of fields to include
 * @param {string} pageCookie paged results cookie
 * @param {State} state library state
 * @returns {Promise<IdObjectSkeletonInterface[]>} a promise that resolves to an ObjectSkeletonInterface
 */
export declare function queryInternalObjects({ type, filter, fields, pageSize, pageCookie, state, }: {
    type: string;
    filter: string;
    fields?: string[];
    pageSize?: number;
    pageCookie?: string;
    state: State;
}): Promise<PagedResult<IdObjectSkeletonInterface>>;
/**
 * Query internal objects
 * @param {string} type internal object type
 * @param {string[]} fields fields to retrieve
 * @param {string} pageCookie paged results cookie
 * @returns {Promise<{result: any[]; resultCount: number; pagedResultsCookie: any; totalPagedResultsPolicy: string; totalPagedResults: number; remainingPagedResults: number;}>} a promise that resolves to internal objects of the desired type
 */
export declare function queryAllInternalObjectsByType({ type, fields, pageSize, pageCookie, state, }: {
    type: string;
    fields?: string[];
    pageSize?: number;
    pageCookie?: string;
    state: State;
}): Promise<PagedResult<IdObjectSkeletonInterface>>;
/**
 * Delete internal object
 * @param {string} id internal object id
 * @param {State} state library state
 * @returns {Promise<IdObjectSkeletonInterface>} a promise that resolves to an object containing a internal object
 */
export declare function deleteInternalObject({ type, id, state, }: {
    type: string;
    id: string;
    state: State;
}): Promise<IdObjectSkeletonInterface>;
//# sourceMappingURL=InternalObjectApi.d.ts.map