import { State } from '../shared/State';
import { IdObjectSkeletonInterface, PagedResult } from './ApiTypes';
export declare const DEFAULT_PAGE_SIZE: number;
export interface ConnectorServerStatusInterface {
    name: string;
    type: string;
    ok: boolean;
}
export interface TestConnectorServersInterface {
    openicf: ConnectorServerStatusInterface[];
}
export interface SystemStatusInterface {
    name: string;
    enabled: boolean;
    config: string;
    connectorRef: {
        connectorHostRef: string;
        bundleVersion: string;
        bundleName: string;
        connectorName: string;
    };
    displayName: string;
    objectTypes: string[];
    ok: boolean;
}
/**
 * Test connector servers
 * @returns {Promise<TestConnectorServersInterface>} a promise that resolves to a TestConnectorServersInterface object
 */
export declare function testConnectorServers({ state, }: {
    state: State;
}): Promise<TestConnectorServersInterface>;
export declare function readAvailableSystems({ state, }: {
    state: State;
}): Promise<SystemStatusInterface[]>;
export declare function readSystemStatus({ systemName, state, }: {
    systemName: string;
    state: State;
}): Promise<SystemStatusInterface>;
export declare function authenticateSystemObject({ systemName, systemObjectType, username, password, state, }: {
    systemName: string;
    systemObjectType: string;
    username: string;
    password: string;
    state: State;
}): Promise<IdObjectSkeletonInterface>;
export declare function runSystemScript({ systemName, scriptName, state, }: {
    systemName: string;
    scriptName: string;
    state: State;
}): Promise<any>;
export declare function queryAllSystemObjectIds({ systemName, systemObjectType, pageSize, pageCookie, state, }: {
    systemName: string;
    systemObjectType: string;
    pageSize?: number;
    pageCookie?: string;
    state: State;
}): Promise<PagedResult<IdObjectSkeletonInterface>>;
export declare function querySystemObjects({ systemName, systemObjectType, filter, fields, pageSize, pageCookie, state, }: {
    systemName: string;
    systemObjectType: string;
    filter: string;
    fields: string[];
    pageSize?: number;
    pageCookie?: string;
    state: State;
}): Promise<PagedResult<IdObjectSkeletonInterface>>;
export declare function getSystemObject({ systemName, systemObjectType, systemObjectId, fields, state, }: {
    systemName: string;
    systemObjectType: string;
    systemObjectId: string;
    fields?: string[];
    state: State;
}): Promise<IdObjectSkeletonInterface>;
export declare function createSystemObject({ systemName, systemObjectType, systemObjectData, state, }: {
    systemName: string;
    systemObjectType: string;
    systemObjectData: IdObjectSkeletonInterface;
    state: State;
}): Promise<IdObjectSkeletonInterface>;
export declare function putSystemObject({ systemName, systemObjectType, systemObjectId, systemObjectData, failIfExists, state, }: {
    systemName: string;
    systemObjectType: string;
    systemObjectId: string;
    systemObjectData: IdObjectSkeletonInterface;
    failIfExists?: boolean;
    state: State;
}): Promise<IdObjectSkeletonInterface>;
export interface SystemObjectPatchOperationInterface {
    operation: 'add' | 'copy' | 'increment' | 'move' | 'remove' | 'replace' | 'transform';
    field: string;
    value?: any;
    from?: string;
}
export declare function patchSystemObject({ systemName, systemObjectType, systemObjectId, operations, state, }: {
    systemName: string;
    systemObjectType: string;
    systemObjectId: string;
    operations: SystemObjectPatchOperationInterface[];
    state: State;
}): Promise<IdObjectSkeletonInterface>;
export declare function deleteSystemObject({ systemName, systemObjectType, systemObjectId, state, }: {
    systemName: string;
    systemObjectType: string;
    systemObjectId: string;
    state: State;
}): Promise<IdObjectSkeletonInterface>;
//# sourceMappingURL=IdmSystemApi.d.ts.map