import type { NobjcObject } from "objc-js";
import type { _NSPanel } from "./NSPanel.js";
import type { _NSView } from "./NSView.js";
import type { _NSWindow } from "./NSWindow.js";
import type { _NSArray } from "../Foundation/NSArray.js";
import type { _NSString } from "../Foundation/NSString.js";
import type { _NSURL } from "../Foundation/NSURL.js";
import type { _UTType } from "../UniformTypeIdentifiers/UTType.js";
export declare class _NSSavePanel extends _NSPanel {
    static alloc(): _NSSavePanel;
    static new(): _NSSavePanel;
    init(): _NSSavePanel;
    /** Creates a new instance of the NSSavePanel. This class is not a singleton. */
    static savePanel(): _NSSavePanel;
    /** Refreshes the open or save panel's contents. */
    validateVisibleColumns(): void;
    /** MARK: - Actions */
    ok$(sender: NobjcObject | null): void;
    cancel$(sender: NobjcObject | null): void;
    /**
     * `NSSavePanel`/`NSOpenPanel`: Presents the panel as a sheet modal to `window` and returns immediately. Configure the panel before calling this method. The completion handler block will be called after the user has closed the panel, however, the open/save panel sheet may still be on screen. If you require the sheet to be offscreen (for example, to show an alert), first call `[savePanel orderOut:nil]` to close it. The `result` will be `NSModalResponseOK`, `NSModalResponseCancel`, or if the panel fails to display, `NSModalResponseAbort`.
     */
    beginSheetModalForWindow$completionHandler$(window: _NSWindow, handler: (result: number) => void): void;
    /**
     * `NSSavePanel`/`NSOpenPanel`: Presents the panel as a modeless window and returns immediately. Configure the panel before calling this method. The completion handler block will be called after the user has closed the panel. The `result` will be `NSModalResponseOK`, `NSModalResponseCancel`, or if the panel fails to display, `NSModalResponseAbort`.
     */
    beginWithCompletionHandler$(handler: (result: number) => void): void;
    /**
     * `NSSavePanel`/`NSOpenPanel`: Presents the panel as an application modal window. Returns after the user has closed the panel. - Returns: `NSModalResponseOK`, `NSModalResponseCancel` or if the panel fails to display, `NSModalResponseAbort`.
     */
    runModal(): number;
    /** @deprecated Use -URL instead */
    filename(): _NSString;
    /** @deprecated Use -directoryURL instead */
    directory(): _NSString;
    /** @deprecated Use -setDirectoryURL: instead */
    setDirectory$(path: _NSString | null): void;
    /** @deprecated Use -allowedContentTypes instead */
    requiredFileType(): _NSString | null;
    /** @deprecated Use -allowedContentTypes: instead */
    setRequiredFileType$(type: _NSString | null): void;
    /**
     * @deprecated Use beginSheetModalForWindow:completionHandler: instead. The following parameters are replaced by properties: 'path' is replaced by 'directoryURL' and 'name' by 'nameFieldStringValue'.
     */
    beginSheetForDirectory$file$modalForWindow$modalDelegate$didEndSelector$contextInfo$(path: _NSString | null, name: _NSString | null, docWindow: _NSWindow | null, delegate: NobjcObject | null, didEndSelector: string | null, contextInfo: Uint8Array | null): void;
    /**
     * @deprecated Use -runModal instead. The following parameters are replaced by properties: 'path' is replaced by 'directoryURL' and 'name' by 'nameFieldStringValue'.
     */
    runModalForDirectory$file$(path: _NSString | null, name: _NSString | null): number;
    /** @deprecated Default implementation does nothing. */
    selectText$(sender: NobjcObject | null): void;
    /**
     * `NSSavePanel`: Returns the URL to save the file at. A file may already exist at `url` if the user choose to overwrite it. `NSOpenPanel`: Returns the single filename selected by the user. Note: if -allowsMultipleSelection is set, you should use the -URLs on NSOpenPanel instead.
     */
    URL(): _NSURL | null;
    /**
     * Sets and returns the identifier. The panel's current state such as the root directory and the current directory are saved and restored relative to the identifier. - Note: When the identifier is changed, the properties that depend on the identifier are updated from user defaults. Properties that have a null value in user defaults are not changed (and keep their existing value). - Note: Can only be set during the configuration phase.
     */
    identifier(): _NSString | null;
    setIdentifier$(value: _NSString | null): void;
    /**
     * `NSSavePanel`/`NSOpenPanel`: Sets and returns the directory that is displayed. Set to `nil` to display the default directory. This method will not block to resolve the URL, and the directory will asynchronously be set, if required. - Note: Can only be set during the configuration phase.
     */
    directoryURL(): _NSURL;
    setDirectoryURL$(value: _NSURL): void;
    /**
     * `NSSavePanel`: An array of UTTypes specifying the file types the user can save the file as. Set to `@[]` to specify that any file type can be used. If no extension is given by the user, the first preferred extension from the array will be used as the extension for the save panel. If the user specifies a type not in the array, and `allowsOtherFileTypes` is `YES`, they will be presented with another dialog when prompted to save. The default value is the empty array. `NSOpenPanel`: This property determines which files should be enabled in the open panel. Using the deprecated methods to show the open panel (the ones that take a "types:" parameter) will overwrite this value, and should not be used. `allowedContentTypes` can be changed while the panel is running (ie: from an accessory view). This is also known as the "enabled file types". Set to `@[]` to specify that all files should be enabled.
     */
    allowedContentTypes(): _NSArray;
    setAllowedContentTypes$(value: _NSArray): void;
    /**
     * `NSSavePanel`: Returns a BOOL value that indicates whether the panel allows the user to save files with an extension that is not in the list of `allowedFileTypes`. `NSOpenPanel`: Not used.
     */
    allowsOtherFileTypes(): boolean;
    setAllowsOtherFileTypes$(value: boolean): void;
    /**
     * `NSSavePanel`:The current type. If set to `nil`, resets to the first allowed content type. Returns `nil` if `allowedContentTypes` is empty. `NSOpenPanel`: Not used. - Note: Asserts that `currentContentType` conforms to `UTTypeData` or `UTTypeDirectory`.
     */
    currentContentType(): _UTType;
    setCurrentContentType$(value: _UTType): void;
    /**
     * Sets and returns the accessory view shown in the panel. For applications that link on 10.6 and later, the accessoryView's frame will be observed, and any changes the programmer makes to the frame will automatically be reflected in the panel (including animated changes to the frame height). For applications that link on 26.0 and later and use the Liquid Glass design, the accessoryView's control metrics will be the larger Liquid Glass metrics.
     */
    accessoryView(): _NSView | null;
    setAccessoryView$(value: _NSView | null): void;
    /**
     * `NSSavePanel`: Returns `YES` if the panel is expanded. Defaults to `NO`. Persists in the user defaults. `NSOpenPanel`: Not used.
     */
    expanded(): boolean;
    /**
     * `NSSavePanel`/`NSOpenPanel`: Set to `YES` to show the "New Folder" button. Default is `YES`.
     */
    canCreateDirectories(): boolean;
    setCanCreateDirectories$(value: boolean): void;
    /**
     * `NSSavePanel`: Set to `YES` to show the "Hide Extension" menu item. `NSOpenPanel`: Not used.
     */
    canSelectHiddenExtension(): boolean;
    setCanSelectHiddenExtension$(value: boolean): void;
    /**
     * `NSSavePanel`: Set to `YES` if the filename extension should be hidden. Otherwise, `NO` if the filename extension should be shown. Default is `YES`. - Note: Can only be set during the configuration phase. `NSOpenPanel`: Not used.
     */
    extensionHidden(): boolean;
    setExtensionHidden$(value: boolean): void;
    /**
     * `NSSavePanel`/`NSOpenPanel`: If set to `YES`, the user can navigate into file packages as if they were directories. Default is `NO`.
     */
    treatsFilePackagesAsDirectories(): boolean;
    setTreatsFilePackagesAsDirectories$(value: boolean): void;
    /**
     * `NSSavePanel`/`NSOpenPanel`: Sets the text shown on the Open or Save button. If set to an empty string, it will show a localized "Open" for the NSOpenPanel and "Save" for the NSSavePanel. The default value will be the correct localized prompt for the open or save panel, as appropriate.
     */
    prompt(): _NSString;
    setPrompt$(value: _NSString): void;
    /**
     * `NSSavePanel`/`NSOpenPanel`: Sets and returns the title for the panel shown at the top of the window. - Note: The open and save panel does not currently have a titlebar. So the title is not displayed.
     */
    title(): _NSString;
    setTitle$(value: _NSString): void;
    /**
     * `NSSavePanel`: Sets and returns the text shown to the left of the "name field". Default value is a localized "Save As:" string. `NSOpenPanel`: Not used.
     */
    nameFieldLabel(): _NSString;
    setNameFieldLabel$(value: _NSString): void;
    /**
     * `NSSavePanel`: Sets and returns the user-editable file name shown in the name field. - Note: Calling the deprecated methods that take a "name:" parameter will overwrite any values set before the panel is shown. - Note: If `[panel isExtensionHidden]` is set to `YES`, the extension will be hidden. - Note: Can only be set during the configuration phase. `NSOpenPanel`: Not used.
     */
    nameFieldStringValue(): _NSString;
    setNameFieldStringValue$(value: _NSString): void;
    /**
     * `NSSavePanel`/`NSOpenPanel`: Sets and returns the message shown under title of the panel.
     */
    message(): _NSString;
    setMessage$(value: _NSString): void;
    /**
     * `NSSavePanel`/`NSOpenPanel`: If `showsHiddenFiles` is set to `YES`, files that are normally hidden from the user are displayed. This method was published in Mac OS 10.6, but has existed since Mac OS 10.4. This property is KVO compliant. The user may invoke the keyboard shortcut (cmd-shift-.) to show or hide hidden files. Any user interface shown in an an accessory view should be updated by using key value observing (KVO) to watch for changes of this property. Alternatively, the user interface can be directly bound to this property. The default value is `NO`.
     */
    showsHiddenFiles(): boolean;
    setShowsHiddenFiles$(value: boolean): void;
    /**
     * `NSSavePanel`: Shows or hides the "Tags" field in the receiver. By passing `YES`, you become responsible for setting Tag names on the resulting file after saving is complete. Default is `YES`. `NSOpenPanel`: Not used.
     */
    showsTagField(): boolean;
    setShowsTagField$(value: boolean): void;
    /**
     * `NSSavePanel`: When -showsTagField returns YES, set any initial Tag names to be displayed, if necessary, prior to displaying the receiver. Also, if the user clicks "Save", take the result of -tagNames, and set them on the resulting file after saving is complete. Tag names are NSStrings, arrays of which can be used directly with the NSURLTagNamesKey API for getting and setting tags on files. Passing `nil` or an empty array to -setTagNames: will result in no initial Tag names appearing in the receiver. When -showsTagField returns YES, -tagNames always returns a non-nil array, and when NO, -tagNames always returns `nil`. `NSOpenPanel`: Not used.
     */
    tagNames(): _NSArray;
    setTagNames$(value: _NSArray): void;
    /**
     * `NSSavePanel`: Whether or not to show a control for selecting the type of the saved file. The control shows the types in `allowedContentTypes`. Default is `NO`. `NSOpenPanel`: Not used. - Note: If `allowedContentTypes` is empty, the control is not displayed.
     */
    showsContentTypes(): boolean;
    setShowsContentTypes$(value: boolean): void;
    /**
     * `NSSavePanel`: An array of NSStrings specifying the file types the user can save the file as. The file type can be a common file extension, or a UTI. A nil value indicates that any file type can be used. If the array is not nil and the array contains no items, an exception will be raised. If no extension is given by the user, the first item in the allowedFileTypes will be used as the extension for the save panel. If the user specifies a type not in the array, and 'allowsOtherFileTypes' is YES, they will be presented with another dialog when prompted to save. The default value is 'nil'. `NSOpenPanel`: On versions less than 10.6, this property is ignored. For applications that link against 10.6 and higher, this property will determine which files should be enabled in the open panel. Using the deprecated methods to show the open panel (the ones that take a "types:" parameter) will overwrite this value, and should not be used. The allowedFileTypes can be changed while the panel is running (ie: from an accessory view). The file type can be a common file extension, or a UTI. This is also known as the "enabled file types". A nil value indicates that all files should be enabled.
     * @deprecated Use -allowedContentTypes instead
     */
    allowedFileTypes(): _NSArray;
    setAllowedFileTypes$(value: _NSArray): void;
}
