import type { NobjcObject } from "objc-js";
import type { _NSArray } from "../Foundation/NSArray.js";
import type { _NSDictionary } from "../Foundation/NSDictionary.js";
import type { _NSObject } from "../Foundation/NSObject.js";
import type { _NSString } from "../Foundation/NSString.js";
import type { _SFAuthorization } from "../SecurityFoundation/SFAuthorization.js";
import type { _ODConfiguration } from "./ODConfiguration.js";
export declare class _ODSession extends _NSObject {
    static alloc(): _ODSession;
    static new(): _ODSession;
    init(): _ODSession;
    /**
     * @method defaultSession @abstract Returns a shared instance of a local ODSession @discussion Returns a shared instance of a local ODSession. This can be used for most situations unless more control is needed over the session.
     */
    static defaultSession(): _ODSession;
    /**
     * @method sessionWithOptions:error: @abstract Creates an autoreleased instance of ODSession directed over Proxy to another host @discussion Creates an autoreleased instance of ODSession directed over Proxy to another host. nil can be passed for no options. outError is optional parameter, nil can be passed if error details are not needed. Options include: If proxy is required then a dictionary with keys should be: Key Value ODSessionProxyAddress NSString(hostname or IP) ODSessionProxyPort NSNumber(IP port, should not be set as it will default) ODSessionProxyUsername NSString(username) ODSessionProxyPassword NSString(password)
     */
    static sessionWithOptions$error$(inOptions: _NSDictionary, outError: NobjcObject): _ODSession;
    /**
     * @method initWithOptions:error: @abstract Creates an instance of ODSession directed over Proxy to another host @discussion Creates an instance of ODSession directed over Proxy to another host. nil can be passed for no options. outError is optional parameter, nil can be passed if error details are not needed. Options include: If proxy is required then a dictionary with keys should be: Key Value ODSessionProxyAddress NSString(hostname or IP) ODSessionProxyPort NSNumber(IP port, should not be set as it will default) ODSessionProxyUsername NSString(username) ODSessionProxyPassword NSString(password)
     */
    initWithOptions$error$(inOptions: _NSDictionary, outError: NobjcObject): _ODSession;
    /**
     * @method nodeNamesAndReturnError: @abstract Returns the node names that are registered on this ODSession @discussion Returns the node names that are registered on this ODSession. outError can be nil if error details are not needed.
     */
    nodeNamesAndReturnError$(outError: NobjcObject): _NSArray;
    /**
     * @method configurationAuthorizationAllowingUserInteraction: @abstract Returns an authorization appropriate for managing configurations. @discussion Returns an authorization appropriate for managing configurations. If a proxy session is in use this method will return nil and no error.
     */
    configurationAuthorizationAllowingUserInteraction$error$(allowInteraction: boolean, error: NobjcObject): _SFAuthorization;
    /**
     * @method configurationForNodename: @abstract Reads the configuration for a given nodename. @discussion Reads the configuration for a given nodename.
     */
    configurationForNodename$(nodename: _NSString): _ODConfiguration;
    /**
     * @method addConfiguration:authorization:error: @abstract Adds a new configuration to the existing ODSession. @discussion Adds a new configuration to the existing ODSession. An SFAuthorization can be provided if necessary.
     */
    addConfiguration$authorization$error$(configuration: _ODConfiguration, authorization: _SFAuthorization, error: NobjcObject): boolean;
    /**
     * @method deleteConfiguration:authorization:error: @abstract Deletes an existing configuration from the ODSession. @discussion Deletes an existing configuration from the ODSession. An authorization can be provided if necessary.
     */
    deleteConfiguration$authorization$error$(configuration: _ODConfiguration, authorization: _SFAuthorization, error: NobjcObject): boolean;
    /**
     * @method deleteConfigurationWithNodename:authorization:error: @abstract Deletes an existing configuration from the ODSession. @discussion Deletes an existing configuration from the ODSession. An authorization can be provided if necessary.
     */
    deleteConfigurationWithNodename$authorization$error$(nodename: _NSString, authorization: _SFAuthorization, error: NobjcObject): boolean;
    /**
     * @method configurationTemplateNames @abstract Returns a list of names as NSStrings for all available configuration templates. @discussion Returns a list of names as NSStrings for all available configuration templates. Configuration templates have pre-configured modules and/or mappings. Useful for re-using existing configurations that may change with operating system without changing the actual configuration.
     */
    configurationTemplateNames(): _NSArray;
    /**
     * @method mappingTemplateNames @abstract Returns a list names as NSStrings for all available mapping templates. @discussion Returns a list names as NSStrings for all available mapping templates. Mapping templates have pre-configured record/attribute mappings. Useful if a configuration uses a common layout of mappings for a type of server.
     */
    mappingTemplateNames(): _NSArray;
}
