import type { NobjcObject } from "objc-js";
import type { _NSBundle } from "../Foundation/NSBundle.js";
import type { _NSObject } from "../Foundation/NSObject.js";
import type { _NSString } from "../Foundation/NSString.js";
export declare class _IMKServer extends _NSObject {
    static alloc(): _IMKServer;
    static new(): _IMKServer;
    init(): _IMKServer;
    /**
     * @method @abstract Create a IMKServer from information in the bundle's Info.plist. @discussion This method will look into the info.plist for a controller class and delegate class. The class names will be loaded, no classes will be instantiated. Additionally, an NSConnection will be allocated and registered with the name parameter.
     */
    initWithName$bundleIdentifier$(name: _NSString, bundleIdentifier: _NSString): NobjcObject;
    /**
     * @method @abstract Creates an IMKServer using the parameters. @discussion This method creates an IMKServer object without attempting to examine the bundle instead the class names provided as parameters are used to create input controller objects and delegate objects.
     */
    initWithName$controllerClass$delegateClass$(name: _NSString, controllerClassID: NobjcObject, delegateClassID: NobjcObject): NobjcObject;
    /**
     * @method @abstract Returns an NSBundle for the input method. @discussion If the IMKServer contains a bundle identifier the NSBundle is created from that. Otherwise, the bundle is created for the main bundle. The returned NSBundle is an autoreleased object.
     */
    bundle(): _NSBundle;
    /**
     * @method @abstract Call this before terminating a palette IM. @discussion Palettes need to be able to terminate. When this method is called the IMKServer will notify each client of the palette that the palette is about to terminate. The palette can terminate safely if a value of YES is returned. If the caller of this method is not an input method of type palette an exception will be thrown. If the method returns NO the palette should not terminate.
     */
    paletteWillTerminate(): boolean;
    /**
     * @method @abstract Returns a BOOL indicating whether or not the last key press was a dead key.
     */
    lastKeyEventWasDeadKey(): boolean;
}
