import { AgentGroupSkeleton, AgentSkeleton } from '../api/AgentApi';
import { AmConfigEntitiesInterface } from '../api/AmConfigApi';
import { IdObjectSkeletonInterface } from '../api/ApiTypes';
import { AuthenticationSettingsSkeleton } from '../api/AuthenticationSettingsApi';
import { CircleOfTrustSkeleton } from '../api/CirclesOfTrustApi';
import { SiteSkeleton } from '../api/classic/SiteApi';
import { SecretSkeleton } from '../api/cloud/SecretsApi';
import { VariableSkeleton } from '../api/cloud/VariablesApi';
import { OAuth2ClientSkeleton } from '../api/OAuth2ClientApi';
import { OAuth2TrustedJwtIssuerSkeleton } from '../api/OAuth2TrustedJwtIssuerApi';
import { PolicySkeleton } from '../api/PoliciesApi';
import { PolicySetSkeleton } from '../api/PolicySetApi';
import { RealmSkeleton } from '../api/RealmApi';
import { ResourceTypeSkeleton } from '../api/ResourceTypesApi';
import { Saml2ProviderSkeleton } from '../api/Saml2Api';
import { ScriptSkeleton } from '../api/ScriptApi';
import { AmServiceSkeleton } from '../api/ServiceApi';
import { SocialIdpSkeleton } from '../api/SocialIdentityProvidersApi';
import { State } from '../shared/State';
import { ApplicationSkeleton } from './ApplicationOps';
import { SecretStoreExportSkeleton } from './classic/SecretStoreOps';
import { ServerExportInterface } from './classic/ServerOps';
import { EmailTemplateSkeleton } from './EmailTemplateOps';
import { InternalRoleSkeleton } from './InternalRoleOps';
import { SingleTreeExportInterface } from './JourneyOps';
import { MappingSkeleton, SyncSkeleton } from './MappingOps';
import { ExportMetaData, ResultCallback } from './OpsTypes';
import { ScriptTypeExportSkeleton } from './ScriptTypeOps';
import { ThemeSkeleton } from './ThemeOps';
export type Config = {
    /**
     * Export full configuration
     * @param {FullExportOptions} options export options
     * @param {ResultCallback} resultCallback Optional callback to process individual results
     * @returns {Promise<FullExportInterface>} a promise resolving to a full export object
     */
    exportFullConfiguration(options: FullExportOptions, resultCallback: ResultCallback<any>): Promise<FullExportInterface>;
    /**
     * Import full configuration
     * @param {FullExportInterface} importData import data
     * @param {FullImportOptions} options import options
     * @param {ResultCallback} resultCallback Optional callback to process individual results
     */
    importFullConfiguration(importData: FullExportInterface, options: FullImportOptions, resultCallback: ResultCallback<any>): Promise<(object | any[])[]>;
};
declare const _default: (state: State) => Config;
export default _default;
/**
 * Full export options
 */
export interface FullExportOptions {
    /**
     * Use string arrays to store multi-line text in scripts.
     */
    useStringArrays: boolean;
    /**
     * Do not include decoded variable value in export
     */
    noDecode: boolean;
    /**
     * Include x and y coordinate positions of the journey/tree nodes.
     */
    coords: boolean;
    /**
     * Include default scripts in export if true
     */
    includeDefault: boolean;
    /**
     * Include active and loaded secret values
     */
    includeActiveValues: boolean;
    /**
     * Host URL of target environment to encrypt secret values for
     */
    target?: string;
    /**
     * Include read only config in export if true
     */
    includeReadOnly: boolean;
    /**
     * Export config only for the current realm
     */
    onlyRealm: boolean;
    /**
     * Export only global config
     */
    onlyGlobal: boolean;
}
/**
 * Full import options
 */
export interface FullImportOptions {
    /**
     * Generate new UUIDs for all journey nodes during import.
     */
    reUuidJourneys: boolean;
    /**
     * Generate new UUIDs for all scripts during import.
     */
    reUuidScripts: boolean;
    /**
     * Indicates whether to remove previously existing services of the same id before importing
     */
    cleanServices: boolean;
    /**
     * Include default scripts in import if true
     */
    includeDefault: boolean;
    /**
     * Include active secret values
     */
    includeActiveValues: boolean;
    /**
     * Host URL of source environment to decrypt secret values from
     */
    source?: string;
}
export interface FullExportInterface {
    meta?: ExportMetaData;
    global: FullGlobalExportInterface;
    realm: Record<string, FullRealmExportInterface>;
}
export interface FullGlobalExportInterface extends AmConfigEntitiesInterface {
    agent: Record<string, AgentSkeleton> | undefined;
    authentication: AuthenticationSettingsSkeleton | undefined;
    emailTemplate: Record<string, EmailTemplateSkeleton> | undefined;
    idm: Record<string, IdObjectSkeletonInterface> | undefined;
    internalRole: Record<string, InternalRoleSkeleton>;
    mapping: Record<string, MappingSkeleton> | undefined;
    realm: Record<string, RealmSkeleton> | undefined;
    scripttype: Record<string, ScriptTypeExportSkeleton> | undefined;
    secret: Record<string, SecretSkeleton> | undefined;
    secretstore: Record<string, SecretStoreExportSkeleton> | undefined;
    server: ServerExportInterface | undefined;
    service: Record<string, AmServiceSkeleton> | undefined;
    site: Record<string, SiteSkeleton> | undefined;
    sync: SyncSkeleton | undefined;
    variable: Record<string, VariableSkeleton> | undefined;
}
export interface FullRealmExportInterface extends AmConfigEntitiesInterface {
    agentGroup: Record<string, AgentGroupSkeleton> | undefined;
    agent: Record<string, AgentSkeleton> | undefined;
    application: Record<string, OAuth2ClientSkeleton> | undefined;
    authentication: AuthenticationSettingsSkeleton | undefined;
    idp: Record<string, SocialIdpSkeleton> | undefined;
    managedApplication: Record<string, ApplicationSkeleton> | undefined;
    policy: Record<string, PolicySkeleton> | undefined;
    policyset: Record<string, PolicySetSkeleton> | undefined;
    resourcetype: Record<string, ResourceTypeSkeleton> | undefined;
    saml: {
        hosted: Record<string, Saml2ProviderSkeleton>;
        remote: Record<string, Saml2ProviderSkeleton>;
        metadata: Record<string, string[]>;
        cot: Record<string, CircleOfTrustSkeleton> | undefined;
    } | undefined;
    script: Record<string, ScriptSkeleton> | undefined;
    secretstore: Record<string, SecretStoreExportSkeleton> | undefined;
    service: Record<string, AmServiceSkeleton> | undefined;
    theme: Record<string, ThemeSkeleton> | undefined;
    trees: Record<string, SingleTreeExportInterface> | undefined;
    trustedJwtIssuer: Record<string, OAuth2TrustedJwtIssuerSkeleton> | undefined;
}
/**
 * Export full configuration
 * @param {FullExportOptions} options export options
 * @param {ResultCallback} resultCallback Optional callback to process individual results
 */
export declare function exportFullConfiguration({ options, resultCallback, state, }: {
    options: FullExportOptions;
    resultCallback: ResultCallback<any>;
    state: State;
}): Promise<FullExportInterface>;
/**
 * Import full configuration
 * @param {FullExportInterface} importData import data
 * @param {FullImportOptions} options import options
 * @param {ResultCallback} resultCallback Optional callback to process individual results
 */
export declare function importFullConfiguration({ importData, options, resultCallback, state, }: {
    importData: FullExportInterface;
    options: FullImportOptions;
    resultCallback: ResultCallback<any>;
    state: State;
}): Promise<(object | any[])[]>;
//# sourceMappingURL=ConfigOps.d.ts.map