import type { _NSArray } from "../Foundation/NSArray.js";
import type { _NSSharingService } from "./NSSharingService.js";
import type { _NSSharingServiceDelegate } from "./NSSharingServiceDelegate.js";
import type { _NSSharingServicePicker } from "./NSSharingServicePicker.js";
export interface _NSSharingServicePickerDelegate {
    /**
     * Allows the delegate to customize exactly what appears in the sharing service picker by reordering or removing the services before the picker is presented. It's possible to add custom services by mutating the proposedSharingServices array and adding new NSSharingService instances: ```objc NSMutableArray *sharingServices = [proposedServices mutableCopy]; NSSharingService * customService = [[NSSharingService alloc] initWithTitle: " Service Title" image:image alternateImage:alternateImage handler:^{ [self doCustomServiceWithItems:items]; } ]; [sharingServices addObject:customService]; return [sharingServices autorelease]; ``` The items represent the objects to be shared and must conform to the <NSPasteboardWriting > protocol or be an NSItemProvider or an NSDocument. (e.g. NSString, NSImage, NSURL, etc.)
     */
    sharingServicePicker$sharingServicesForItems$proposedSharingServices$?(sharingServicePicker: _NSSharingServicePicker, items: _NSArray, proposedServices: _NSArray): _NSArray;
    /**
     * Sent when the user has selected a service and the picker is about to execute it.
     */
    sharingServicePicker$delegateForSharingService$?(sharingServicePicker: _NSSharingServicePicker, sharingService: _NSSharingService): _NSSharingServiceDelegate | null;
    /**
     * Sent when the user has selected a service and before it is executed. Service will be nil if the picker was dismissed.
     */
    sharingServicePicker$didChooseSharingService$?(sharingServicePicker: _NSSharingServicePicker, service: _NSSharingService | null): void;
    /**
     * Used to specify the case where the share picker should not support some modes of sharing even if they are supported by the items being shared. Disabling all possible modes at the same time is not supported behavior.
     */
    sharingServicePickerCollaborationModeRestrictions$?(sharingServicePicker: _NSSharingServicePicker): _NSArray | null;
}
