#include "types.h"
#include <optional>
#include <span>
#include <string>
#include <string_view>
class Error;
#ifdef __OBJC__
#import <AppKit/AppKit.h>
#import <Cocoa/Cocoa.h>
namespace CocoaTools {
NSString* StringViewToNSString(std::string_view str);
void NSErrorToErrorObject(Error* errptr, std::string_view message, NSError* error);
std::string NSErrorToString(NSError* error);
}
#endif
namespace CocoaTools {
u64 ConvertMachTimeBaseToNanoseconds(u64 ns);
u64 ConvertNanosecondsToMachTimeBase(u64 ns);
bool MoveFile(const char* source, const char* destination, Error* error);
std::optional<std::string> GetBundlePath();
std::optional<std::string> GetNonTranslocatedBundlePath();
bool DelayedLaunch(std::string_view file, std::span<const std::string_view> args = {});
}