{- |
Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
License    : LGPL-2.1
Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
-}

module GI.WebKit2WebExtension.Objects.DOMRange
    ( 

-- * Exported types
    DOMRange(..)                            ,
    IsDOMRange                              ,
    toDOMRange                              ,
    noDOMRange                              ,


 -- * Methods
-- ** cloneContents #method:cloneContents#
    DOMRangeCloneContentsMethodInfo         ,
    dOMRangeCloneContents                   ,


-- ** cloneRange #method:cloneRange#
    DOMRangeCloneRangeMethodInfo            ,
    dOMRangeCloneRange                      ,


-- ** collapse #method:collapse#
    DOMRangeCollapseMethodInfo              ,
    dOMRangeCollapse                        ,


-- ** compareBoundaryPoints #method:compareBoundaryPoints#
    DOMRangeCompareBoundaryPointsMethodInfo ,
    dOMRangeCompareBoundaryPoints           ,


-- ** compareNode #method:compareNode#
    DOMRangeCompareNodeMethodInfo           ,
    dOMRangeCompareNode                     ,


-- ** comparePoint #method:comparePoint#
    DOMRangeComparePointMethodInfo          ,
    dOMRangeComparePoint                    ,


-- ** createContextualFragment #method:createContextualFragment#
    DOMRangeCreateContextualFragmentMethodInfo,
    dOMRangeCreateContextualFragment        ,


-- ** deleteContents #method:deleteContents#
    DOMRangeDeleteContentsMethodInfo        ,
    dOMRangeDeleteContents                  ,


-- ** detach #method:detach#
    DOMRangeDetachMethodInfo                ,
    dOMRangeDetach                          ,


-- ** expand #method:expand#
    DOMRangeExpandMethodInfo                ,
    dOMRangeExpand                          ,


-- ** extractContents #method:extractContents#
    DOMRangeExtractContentsMethodInfo       ,
    dOMRangeExtractContents                 ,


-- ** getCollapsed #method:getCollapsed#
    DOMRangeGetCollapsedMethodInfo          ,
    dOMRangeGetCollapsed                    ,


-- ** getCommonAncestorContainer #method:getCommonAncestorContainer#
    DOMRangeGetCommonAncestorContainerMethodInfo,
    dOMRangeGetCommonAncestorContainer      ,


-- ** getEndContainer #method:getEndContainer#
    DOMRangeGetEndContainerMethodInfo       ,
    dOMRangeGetEndContainer                 ,


-- ** getEndOffset #method:getEndOffset#
    DOMRangeGetEndOffsetMethodInfo          ,
    dOMRangeGetEndOffset                    ,


-- ** getStartContainer #method:getStartContainer#
    DOMRangeGetStartContainerMethodInfo     ,
    dOMRangeGetStartContainer               ,


-- ** getStartOffset #method:getStartOffset#
    DOMRangeGetStartOffsetMethodInfo        ,
    dOMRangeGetStartOffset                  ,


-- ** getText #method:getText#
    DOMRangeGetTextMethodInfo               ,
    dOMRangeGetText                         ,


-- ** insertNode #method:insertNode#
    DOMRangeInsertNodeMethodInfo            ,
    dOMRangeInsertNode                      ,


-- ** intersectsNode #method:intersectsNode#
    DOMRangeIntersectsNodeMethodInfo        ,
    dOMRangeIntersectsNode                  ,


-- ** isPointInRange #method:isPointInRange#
    DOMRangeIsPointInRangeMethodInfo        ,
    dOMRangeIsPointInRange                  ,


-- ** selectNode #method:selectNode#
    DOMRangeSelectNodeMethodInfo            ,
    dOMRangeSelectNode                      ,


-- ** selectNodeContents #method:selectNodeContents#
    DOMRangeSelectNodeContentsMethodInfo    ,
    dOMRangeSelectNodeContents              ,


-- ** setEnd #method:setEnd#
    DOMRangeSetEndMethodInfo                ,
    dOMRangeSetEnd                          ,


-- ** setEndAfter #method:setEndAfter#
    DOMRangeSetEndAfterMethodInfo           ,
    dOMRangeSetEndAfter                     ,


-- ** setEndBefore #method:setEndBefore#
    DOMRangeSetEndBeforeMethodInfo          ,
    dOMRangeSetEndBefore                    ,


-- ** setStart #method:setStart#
    DOMRangeSetStartMethodInfo              ,
    dOMRangeSetStart                        ,


-- ** setStartAfter #method:setStartAfter#
    DOMRangeSetStartAfterMethodInfo         ,
    dOMRangeSetStartAfter                   ,


-- ** setStartBefore #method:setStartBefore#
    DOMRangeSetStartBeforeMethodInfo        ,
    dOMRangeSetStartBefore                  ,


-- ** surroundContents #method:surroundContents#
    DOMRangeSurroundContentsMethodInfo      ,
    dOMRangeSurroundContents                ,


-- ** toString #method:toString#
    DOMRangeToStringMethodInfo              ,
    dOMRangeToString                        ,




 -- * Properties
-- ** collapsed #attr:collapsed#
    DOMRangeCollapsedPropertyInfo           ,
    dOMRangeCollapsed                       ,
    getDOMRangeCollapsed                    ,


-- ** commonAncestorContainer #attr:commonAncestorContainer#
    DOMRangeCommonAncestorContainerPropertyInfo,
    dOMRangeCommonAncestorContainer         ,
    getDOMRangeCommonAncestorContainer      ,


-- ** endContainer #attr:endContainer#
    DOMRangeEndContainerPropertyInfo        ,
    dOMRangeEndContainer                    ,
    getDOMRangeEndContainer                 ,


-- ** endOffset #attr:endOffset#
    DOMRangeEndOffsetPropertyInfo           ,
    dOMRangeEndOffset                       ,
    getDOMRangeEndOffset                    ,


-- ** startContainer #attr:startContainer#
    DOMRangeStartContainerPropertyInfo      ,
    dOMRangeStartContainer                  ,
    getDOMRangeStartContainer               ,


-- ** startOffset #attr:startOffset#
    DOMRangeStartOffsetPropertyInfo         ,
    dOMRangeStartOffset                     ,
    getDOMRangeStartOffset                  ,


-- ** text #attr:text#
    DOMRangeTextPropertyInfo                ,
    dOMRangeText                            ,
    getDOMRangeText                         ,




    ) where

import Data.GI.Base.ShortPrelude
import qualified Data.GI.Base.ShortPrelude as SP
import qualified Data.GI.Base.Overloading as O
import qualified Prelude as P

import qualified Data.GI.Base.Attributes as GI.Attributes
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP

import qualified GI.GObject.Objects.Object as GObject.Object
import {-# SOURCE #-} qualified GI.WebKit2WebExtension.Objects.DOMDocumentFragment as WebKit2WebExtension.DOMDocumentFragment
import {-# SOURCE #-} qualified GI.WebKit2WebExtension.Objects.DOMNode as WebKit2WebExtension.DOMNode
import {-# SOURCE #-} qualified GI.WebKit2WebExtension.Objects.DOMObject as WebKit2WebExtension.DOMObject

newtype DOMRange = DOMRange (ManagedPtr DOMRange)
foreign import ccall "webkit_dom_range_get_type"
    c_webkit_dom_range_get_type :: IO GType

instance GObject DOMRange where
    gobjectType _ = c_webkit_dom_range_get_type
    

class GObject o => IsDOMRange o
#if MIN_VERSION_base(4,9,0)
instance {-# OVERLAPPABLE #-} (GObject a, O.UnknownAncestorError DOMRange a) =>
    IsDOMRange a
#endif
instance IsDOMRange DOMRange
instance WebKit2WebExtension.DOMObject.IsDOMObject DOMRange
instance GObject.Object.IsObject DOMRange

toDOMRange :: IsDOMRange o => o -> IO DOMRange
toDOMRange = unsafeCastTo DOMRange

noDOMRange :: Maybe DOMRange
noDOMRange = Nothing

type family ResolveDOMRangeMethod (t :: Symbol) (o :: *) :: * where
    ResolveDOMRangeMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
    ResolveDOMRangeMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
    ResolveDOMRangeMethod "cloneContents" o = DOMRangeCloneContentsMethodInfo
    ResolveDOMRangeMethod "cloneRange" o = DOMRangeCloneRangeMethodInfo
    ResolveDOMRangeMethod "collapse" o = DOMRangeCollapseMethodInfo
    ResolveDOMRangeMethod "compareBoundaryPoints" o = DOMRangeCompareBoundaryPointsMethodInfo
    ResolveDOMRangeMethod "compareNode" o = DOMRangeCompareNodeMethodInfo
    ResolveDOMRangeMethod "comparePoint" o = DOMRangeComparePointMethodInfo
    ResolveDOMRangeMethod "createContextualFragment" o = DOMRangeCreateContextualFragmentMethodInfo
    ResolveDOMRangeMethod "deleteContents" o = DOMRangeDeleteContentsMethodInfo
    ResolveDOMRangeMethod "detach" o = DOMRangeDetachMethodInfo
    ResolveDOMRangeMethod "expand" o = DOMRangeExpandMethodInfo
    ResolveDOMRangeMethod "extractContents" o = DOMRangeExtractContentsMethodInfo
    ResolveDOMRangeMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
    ResolveDOMRangeMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
    ResolveDOMRangeMethod "insertNode" o = DOMRangeInsertNodeMethodInfo
    ResolveDOMRangeMethod "intersectsNode" o = DOMRangeIntersectsNodeMethodInfo
    ResolveDOMRangeMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
    ResolveDOMRangeMethod "isPointInRange" o = DOMRangeIsPointInRangeMethodInfo
    ResolveDOMRangeMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
    ResolveDOMRangeMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
    ResolveDOMRangeMethod "ref" o = GObject.Object.ObjectRefMethodInfo
    ResolveDOMRangeMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
    ResolveDOMRangeMethod "replaceData" o = GObject.Object.ObjectReplaceDataMethodInfo
    ResolveDOMRangeMethod "replaceQdata" o = GObject.Object.ObjectReplaceQdataMethodInfo
    ResolveDOMRangeMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
    ResolveDOMRangeMethod "selectNode" o = DOMRangeSelectNodeMethodInfo
    ResolveDOMRangeMethod "selectNodeContents" o = DOMRangeSelectNodeContentsMethodInfo
    ResolveDOMRangeMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
    ResolveDOMRangeMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
    ResolveDOMRangeMethod "surroundContents" o = DOMRangeSurroundContentsMethodInfo
    ResolveDOMRangeMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
    ResolveDOMRangeMethod "toString" o = DOMRangeToStringMethodInfo
    ResolveDOMRangeMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
    ResolveDOMRangeMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
    ResolveDOMRangeMethod "getCollapsed" o = DOMRangeGetCollapsedMethodInfo
    ResolveDOMRangeMethod "getCommonAncestorContainer" o = DOMRangeGetCommonAncestorContainerMethodInfo
    ResolveDOMRangeMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
    ResolveDOMRangeMethod "getEndContainer" o = DOMRangeGetEndContainerMethodInfo
    ResolveDOMRangeMethod "getEndOffset" o = DOMRangeGetEndOffsetMethodInfo
    ResolveDOMRangeMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
    ResolveDOMRangeMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
    ResolveDOMRangeMethod "getStartContainer" o = DOMRangeGetStartContainerMethodInfo
    ResolveDOMRangeMethod "getStartOffset" o = DOMRangeGetStartOffsetMethodInfo
    ResolveDOMRangeMethod "getText" o = DOMRangeGetTextMethodInfo
    ResolveDOMRangeMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
    ResolveDOMRangeMethod "setEnd" o = DOMRangeSetEndMethodInfo
    ResolveDOMRangeMethod "setEndAfter" o = DOMRangeSetEndAfterMethodInfo
    ResolveDOMRangeMethod "setEndBefore" o = DOMRangeSetEndBeforeMethodInfo
    ResolveDOMRangeMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
    ResolveDOMRangeMethod "setStart" o = DOMRangeSetStartMethodInfo
    ResolveDOMRangeMethod "setStartAfter" o = DOMRangeSetStartAfterMethodInfo
    ResolveDOMRangeMethod "setStartBefore" o = DOMRangeSetStartBeforeMethodInfo
    ResolveDOMRangeMethod l o = O.MethodResolutionFailed l o

instance (info ~ ResolveDOMRangeMethod t DOMRange, O.MethodInfo info DOMRange p) => O.IsLabelProxy t (DOMRange -> p) where
    fromLabelProxy _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)

#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolveDOMRangeMethod t DOMRange, O.MethodInfo info DOMRange p) => O.IsLabel t (DOMRange -> p) where
    fromLabel _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#endif

-- VVV Prop "collapsed"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable]
   -- Nullable: (Nothing,Nothing)

getDOMRangeCollapsed :: (MonadIO m, IsDOMRange o) => o -> m Bool
getDOMRangeCollapsed obj = liftIO $ getObjectPropertyBool obj "collapsed"

data DOMRangeCollapsedPropertyInfo
instance AttrInfo DOMRangeCollapsedPropertyInfo where
    type AttrAllowedOps DOMRangeCollapsedPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMRangeCollapsedPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMRangeCollapsedPropertyInfo = IsDOMRange
    type AttrGetType DOMRangeCollapsedPropertyInfo = Bool
    type AttrLabel DOMRangeCollapsedPropertyInfo = "collapsed"
    type AttrOrigin DOMRangeCollapsedPropertyInfo = DOMRange
    attrGet _ = getDOMRangeCollapsed
    attrSet _ = undefined
    attrConstruct _ = undefined
    attrClear _ = undefined

-- VVV Prop "common-ancestor-container"
   -- Type: TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"})
   -- Flags: [PropertyReadable]
   -- Nullable: (Nothing,Nothing)

getDOMRangeCommonAncestorContainer :: (MonadIO m, IsDOMRange o) => o -> m (Maybe WebKit2WebExtension.DOMNode.DOMNode)
getDOMRangeCommonAncestorContainer obj = liftIO $ getObjectPropertyObject obj "common-ancestor-container" WebKit2WebExtension.DOMNode.DOMNode

data DOMRangeCommonAncestorContainerPropertyInfo
instance AttrInfo DOMRangeCommonAncestorContainerPropertyInfo where
    type AttrAllowedOps DOMRangeCommonAncestorContainerPropertyInfo = '[ 'AttrGet, 'AttrClear]
    type AttrSetTypeConstraint DOMRangeCommonAncestorContainerPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMRangeCommonAncestorContainerPropertyInfo = IsDOMRange
    type AttrGetType DOMRangeCommonAncestorContainerPropertyInfo = (Maybe WebKit2WebExtension.DOMNode.DOMNode)
    type AttrLabel DOMRangeCommonAncestorContainerPropertyInfo = "common-ancestor-container"
    type AttrOrigin DOMRangeCommonAncestorContainerPropertyInfo = DOMRange
    attrGet _ = getDOMRangeCommonAncestorContainer
    attrSet _ = undefined
    attrConstruct _ = undefined
    attrClear _ = undefined

-- VVV Prop "end-container"
   -- Type: TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"})
   -- Flags: [PropertyReadable]
   -- Nullable: (Nothing,Nothing)

getDOMRangeEndContainer :: (MonadIO m, IsDOMRange o) => o -> m (Maybe WebKit2WebExtension.DOMNode.DOMNode)
getDOMRangeEndContainer obj = liftIO $ getObjectPropertyObject obj "end-container" WebKit2WebExtension.DOMNode.DOMNode

data DOMRangeEndContainerPropertyInfo
instance AttrInfo DOMRangeEndContainerPropertyInfo where
    type AttrAllowedOps DOMRangeEndContainerPropertyInfo = '[ 'AttrGet, 'AttrClear]
    type AttrSetTypeConstraint DOMRangeEndContainerPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMRangeEndContainerPropertyInfo = IsDOMRange
    type AttrGetType DOMRangeEndContainerPropertyInfo = (Maybe WebKit2WebExtension.DOMNode.DOMNode)
    type AttrLabel DOMRangeEndContainerPropertyInfo = "end-container"
    type AttrOrigin DOMRangeEndContainerPropertyInfo = DOMRange
    attrGet _ = getDOMRangeEndContainer
    attrSet _ = undefined
    attrConstruct _ = undefined
    attrClear _ = undefined

-- VVV Prop "end-offset"
   -- Type: TBasicType TLong
   -- Flags: [PropertyReadable]
   -- Nullable: (Nothing,Nothing)

getDOMRangeEndOffset :: (MonadIO m, IsDOMRange o) => o -> m CLong
getDOMRangeEndOffset obj = liftIO $ getObjectPropertyLong obj "end-offset"

data DOMRangeEndOffsetPropertyInfo
instance AttrInfo DOMRangeEndOffsetPropertyInfo where
    type AttrAllowedOps DOMRangeEndOffsetPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMRangeEndOffsetPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMRangeEndOffsetPropertyInfo = IsDOMRange
    type AttrGetType DOMRangeEndOffsetPropertyInfo = CLong
    type AttrLabel DOMRangeEndOffsetPropertyInfo = "end-offset"
    type AttrOrigin DOMRangeEndOffsetPropertyInfo = DOMRange
    attrGet _ = getDOMRangeEndOffset
    attrSet _ = undefined
    attrConstruct _ = undefined
    attrClear _ = undefined

-- VVV Prop "start-container"
   -- Type: TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"})
   -- Flags: [PropertyReadable]
   -- Nullable: (Nothing,Nothing)

getDOMRangeStartContainer :: (MonadIO m, IsDOMRange o) => o -> m (Maybe WebKit2WebExtension.DOMNode.DOMNode)
getDOMRangeStartContainer obj = liftIO $ getObjectPropertyObject obj "start-container" WebKit2WebExtension.DOMNode.DOMNode

data DOMRangeStartContainerPropertyInfo
instance AttrInfo DOMRangeStartContainerPropertyInfo where
    type AttrAllowedOps DOMRangeStartContainerPropertyInfo = '[ 'AttrGet, 'AttrClear]
    type AttrSetTypeConstraint DOMRangeStartContainerPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMRangeStartContainerPropertyInfo = IsDOMRange
    type AttrGetType DOMRangeStartContainerPropertyInfo = (Maybe WebKit2WebExtension.DOMNode.DOMNode)
    type AttrLabel DOMRangeStartContainerPropertyInfo = "start-container"
    type AttrOrigin DOMRangeStartContainerPropertyInfo = DOMRange
    attrGet _ = getDOMRangeStartContainer
    attrSet _ = undefined
    attrConstruct _ = undefined
    attrClear _ = undefined

-- VVV Prop "start-offset"
   -- Type: TBasicType TLong
   -- Flags: [PropertyReadable]
   -- Nullable: (Nothing,Nothing)

getDOMRangeStartOffset :: (MonadIO m, IsDOMRange o) => o -> m CLong
getDOMRangeStartOffset obj = liftIO $ getObjectPropertyLong obj "start-offset"

data DOMRangeStartOffsetPropertyInfo
instance AttrInfo DOMRangeStartOffsetPropertyInfo where
    type AttrAllowedOps DOMRangeStartOffsetPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMRangeStartOffsetPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMRangeStartOffsetPropertyInfo = IsDOMRange
    type AttrGetType DOMRangeStartOffsetPropertyInfo = CLong
    type AttrLabel DOMRangeStartOffsetPropertyInfo = "start-offset"
    type AttrOrigin DOMRangeStartOffsetPropertyInfo = DOMRange
    attrGet _ = getDOMRangeStartOffset
    attrSet _ = undefined
    attrConstruct _ = undefined
    attrClear _ = undefined

-- VVV Prop "text"
   -- Type: TBasicType TUTF8
   -- Flags: [PropertyReadable]
   -- Nullable: (Nothing,Nothing)

getDOMRangeText :: (MonadIO m, IsDOMRange o) => o -> m (Maybe T.Text)
getDOMRangeText obj = liftIO $ getObjectPropertyString obj "text"

data DOMRangeTextPropertyInfo
instance AttrInfo DOMRangeTextPropertyInfo where
    type AttrAllowedOps DOMRangeTextPropertyInfo = '[ 'AttrGet, 'AttrClear]
    type AttrSetTypeConstraint DOMRangeTextPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMRangeTextPropertyInfo = IsDOMRange
    type AttrGetType DOMRangeTextPropertyInfo = (Maybe T.Text)
    type AttrLabel DOMRangeTextPropertyInfo = "text"
    type AttrOrigin DOMRangeTextPropertyInfo = DOMRange
    attrGet _ = getDOMRangeText
    attrSet _ = undefined
    attrConstruct _ = undefined
    attrClear _ = undefined

instance O.HasAttributeList DOMRange
type instance O.AttributeList DOMRange = DOMRangeAttributeList
type DOMRangeAttributeList = ('[ '("collapsed", DOMRangeCollapsedPropertyInfo), '("commonAncestorContainer", DOMRangeCommonAncestorContainerPropertyInfo), '("coreObject", WebKit2WebExtension.DOMObject.DOMObjectCoreObjectPropertyInfo), '("endContainer", DOMRangeEndContainerPropertyInfo), '("endOffset", DOMRangeEndOffsetPropertyInfo), '("startContainer", DOMRangeStartContainerPropertyInfo), '("startOffset", DOMRangeStartOffsetPropertyInfo), '("text", DOMRangeTextPropertyInfo)] :: [(Symbol, *)])

dOMRangeCollapsed :: AttrLabelProxy "collapsed"
dOMRangeCollapsed = AttrLabelProxy

dOMRangeCommonAncestorContainer :: AttrLabelProxy "commonAncestorContainer"
dOMRangeCommonAncestorContainer = AttrLabelProxy

dOMRangeEndContainer :: AttrLabelProxy "endContainer"
dOMRangeEndContainer = AttrLabelProxy

dOMRangeEndOffset :: AttrLabelProxy "endOffset"
dOMRangeEndOffset = AttrLabelProxy

dOMRangeStartContainer :: AttrLabelProxy "startContainer"
dOMRangeStartContainer = AttrLabelProxy

dOMRangeStartOffset :: AttrLabelProxy "startOffset"
dOMRangeStartOffset = AttrLabelProxy

dOMRangeText :: AttrLabelProxy "text"
dOMRangeText = AttrLabelProxy

type instance O.SignalList DOMRange = DOMRangeSignalList
type DOMRangeSignalList = ('[ '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, *)])

-- method DOMRange::clone_contents
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMRange"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMRange", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMDocumentFragment"}))
-- throws : True
-- Skip return : False

foreign import ccall "webkit_dom_range_clone_contents" webkit_dom_range_clone_contents :: 
    Ptr DOMRange ->                         -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMRange"})
    Ptr (Ptr GError) ->                     -- error
    IO (Ptr WebKit2WebExtension.DOMDocumentFragment.DOMDocumentFragment)

{- |
/No description available in the introspection data./
-}
dOMRangeCloneContents ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMRange a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMRange.DOMRange' -}
    -> m WebKit2WebExtension.DOMDocumentFragment.DOMDocumentFragment
    {- ^ __Returns:__ A 'GI.WebKit2WebExtension.Objects.DOMDocumentFragment.DOMDocumentFragment' /(Can throw 'Data.GI.Base.GError.GError')/ -}
dOMRangeCloneContents self = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    onException (do
        result <- propagateGError $ webkit_dom_range_clone_contents self'
        checkUnexpectedReturnNULL "dOMRangeCloneContents" result
        result' <- (newObject WebKit2WebExtension.DOMDocumentFragment.DOMDocumentFragment) result
        touchManagedPtr self
        return result'
     ) (do
        return ()
     )

data DOMRangeCloneContentsMethodInfo
instance (signature ~ (m WebKit2WebExtension.DOMDocumentFragment.DOMDocumentFragment), MonadIO m, IsDOMRange a) => O.MethodInfo DOMRangeCloneContentsMethodInfo a signature where
    overloadedMethod _ = dOMRangeCloneContents

-- method DOMRange::clone_range
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMRange"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMRange", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMRange"}))
-- throws : True
-- Skip return : False

foreign import ccall "webkit_dom_range_clone_range" webkit_dom_range_clone_range :: 
    Ptr DOMRange ->                         -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMRange"})
    Ptr (Ptr GError) ->                     -- error
    IO (Ptr DOMRange)

{- |
/No description available in the introspection data./
-}
dOMRangeCloneRange ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMRange a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMRange.DOMRange' -}
    -> m DOMRange
    {- ^ __Returns:__ A 'GI.WebKit2WebExtension.Objects.DOMRange.DOMRange' /(Can throw 'Data.GI.Base.GError.GError')/ -}
dOMRangeCloneRange self = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    onException (do
        result <- propagateGError $ webkit_dom_range_clone_range self'
        checkUnexpectedReturnNULL "dOMRangeCloneRange" result
        result' <- (wrapObject DOMRange) result
        touchManagedPtr self
        return result'
     ) (do
        return ()
     )

data DOMRangeCloneRangeMethodInfo
instance (signature ~ (m DOMRange), MonadIO m, IsDOMRange a) => O.MethodInfo DOMRangeCloneRangeMethodInfo a signature where
    overloadedMethod _ = dOMRangeCloneRange

-- method DOMRange::collapse
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMRange"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMRange", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "toStart", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #gboolean", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : True
-- Skip return : False

foreign import ccall "webkit_dom_range_collapse" webkit_dom_range_collapse :: 
    Ptr DOMRange ->                         -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMRange"})
    CInt ->                                 -- toStart : TBasicType TBoolean
    Ptr (Ptr GError) ->                     -- error
    IO ()

{- |
/No description available in the introspection data./
-}
dOMRangeCollapse ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMRange a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMRange.DOMRange' -}
    -> Bool
    {- ^ /@toStart@/: A 'Bool' -}
    -> m ()
    {- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
dOMRangeCollapse self toStart = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    let toStart' = (fromIntegral . fromEnum) toStart
    onException (do
        propagateGError $ webkit_dom_range_collapse self' toStart'
        touchManagedPtr self
        return ()
     ) (do
        return ()
     )

data DOMRangeCollapseMethodInfo
instance (signature ~ (Bool -> m ()), MonadIO m, IsDOMRange a) => O.MethodInfo DOMRangeCollapseMethodInfo a signature where
    overloadedMethod _ = dOMRangeCollapse

-- method DOMRange::compare_boundary_points
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMRange"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMRange", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "how", argType = TBasicType TUInt16, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #gushort", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "sourceRange", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMRange"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMRange", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TInt16)
-- throws : True
-- Skip return : False

foreign import ccall "webkit_dom_range_compare_boundary_points" webkit_dom_range_compare_boundary_points :: 
    Ptr DOMRange ->                         -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMRange"})
    Word16 ->                               -- how : TBasicType TUInt16
    Ptr DOMRange ->                         -- sourceRange : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMRange"})
    Ptr (Ptr GError) ->                     -- error
    IO Int16

{- |
/No description available in the introspection data./
-}
dOMRangeCompareBoundaryPoints ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMRange a, IsDOMRange b) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMRange.DOMRange' -}
    -> Word16
    {- ^ /@how@/: A @/gushort/@ -}
    -> b
    {- ^ /@sourceRange@/: A 'GI.WebKit2WebExtension.Objects.DOMRange.DOMRange' -}
    -> m Int16
    {- ^ __Returns:__ A @/gshort/@ /(Can throw 'Data.GI.Base.GError.GError')/ -}
dOMRangeCompareBoundaryPoints self how sourceRange = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    sourceRange' <- unsafeManagedPtrCastPtr sourceRange
    onException (do
        result <- propagateGError $ webkit_dom_range_compare_boundary_points self' how sourceRange'
        touchManagedPtr self
        touchManagedPtr sourceRange
        return result
     ) (do
        return ()
     )

data DOMRangeCompareBoundaryPointsMethodInfo
instance (signature ~ (Word16 -> b -> m Int16), MonadIO m, IsDOMRange a, IsDOMRange b) => O.MethodInfo DOMRangeCompareBoundaryPointsMethodInfo a signature where
    overloadedMethod _ = dOMRangeCompareBoundaryPoints

-- method DOMRange::compare_node
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMRange"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMRange", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "refNode", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMNode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TInt16)
-- throws : True
-- Skip return : False

foreign import ccall "webkit_dom_range_compare_node" webkit_dom_range_compare_node :: 
    Ptr DOMRange ->                         -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMRange"})
    Ptr WebKit2WebExtension.DOMNode.DOMNode -> -- refNode : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"})
    Ptr (Ptr GError) ->                     -- error
    IO Int16

{- |
/No description available in the introspection data./
-}
dOMRangeCompareNode ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMRange a, WebKit2WebExtension.DOMNode.IsDOMNode b) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMRange.DOMRange' -}
    -> b
    {- ^ /@refNode@/: A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' -}
    -> m Int16
    {- ^ __Returns:__ A @/gshort/@ /(Can throw 'Data.GI.Base.GError.GError')/ -}
dOMRangeCompareNode self refNode = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    refNode' <- unsafeManagedPtrCastPtr refNode
    onException (do
        result <- propagateGError $ webkit_dom_range_compare_node self' refNode'
        touchManagedPtr self
        touchManagedPtr refNode
        return result
     ) (do
        return ()
     )

data DOMRangeCompareNodeMethodInfo
instance (signature ~ (b -> m Int16), MonadIO m, IsDOMRange a, WebKit2WebExtension.DOMNode.IsDOMNode b) => O.MethodInfo DOMRangeCompareNodeMethodInfo a signature where
    overloadedMethod _ = dOMRangeCompareNode

-- method DOMRange::compare_point
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMRange"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMRange", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "refNode", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMNode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "offset", argType = TBasicType TLong, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #glong", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TInt16)
-- throws : True
-- Skip return : False

foreign import ccall "webkit_dom_range_compare_point" webkit_dom_range_compare_point :: 
    Ptr DOMRange ->                         -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMRange"})
    Ptr WebKit2WebExtension.DOMNode.DOMNode -> -- refNode : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"})
    CLong ->                                -- offset : TBasicType TLong
    Ptr (Ptr GError) ->                     -- error
    IO Int16

{- |
/No description available in the introspection data./
-}
dOMRangeComparePoint ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMRange a, WebKit2WebExtension.DOMNode.IsDOMNode b) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMRange.DOMRange' -}
    -> b
    {- ^ /@refNode@/: A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' -}
    -> CLong
    {- ^ /@offset@/: A @/glong/@ -}
    -> m Int16
    {- ^ __Returns:__ A @/gshort/@ /(Can throw 'Data.GI.Base.GError.GError')/ -}
dOMRangeComparePoint self refNode offset = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    refNode' <- unsafeManagedPtrCastPtr refNode
    onException (do
        result <- propagateGError $ webkit_dom_range_compare_point self' refNode' offset
        touchManagedPtr self
        touchManagedPtr refNode
        return result
     ) (do
        return ()
     )

data DOMRangeComparePointMethodInfo
instance (signature ~ (b -> CLong -> m Int16), MonadIO m, IsDOMRange a, WebKit2WebExtension.DOMNode.IsDOMNode b) => O.MethodInfo DOMRangeComparePointMethodInfo a signature where
    overloadedMethod _ = dOMRangeComparePoint

-- method DOMRange::create_contextual_fragment
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMRange"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMRange", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "html", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #gchar", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMDocumentFragment"}))
-- throws : True
-- Skip return : False

foreign import ccall "webkit_dom_range_create_contextual_fragment" webkit_dom_range_create_contextual_fragment :: 
    Ptr DOMRange ->                         -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMRange"})
    CString ->                              -- html : TBasicType TUTF8
    Ptr (Ptr GError) ->                     -- error
    IO (Ptr WebKit2WebExtension.DOMDocumentFragment.DOMDocumentFragment)

{- |
/No description available in the introspection data./
-}
dOMRangeCreateContextualFragment ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMRange a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMRange.DOMRange' -}
    -> T.Text
    {- ^ /@html@/: A @/gchar/@ -}
    -> m WebKit2WebExtension.DOMDocumentFragment.DOMDocumentFragment
    {- ^ __Returns:__ A 'GI.WebKit2WebExtension.Objects.DOMDocumentFragment.DOMDocumentFragment' /(Can throw 'Data.GI.Base.GError.GError')/ -}
dOMRangeCreateContextualFragment self html = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    html' <- textToCString html
    onException (do
        result <- propagateGError $ webkit_dom_range_create_contextual_fragment self' html'
        checkUnexpectedReturnNULL "dOMRangeCreateContextualFragment" result
        result' <- (newObject WebKit2WebExtension.DOMDocumentFragment.DOMDocumentFragment) result
        touchManagedPtr self
        freeMem html'
        return result'
     ) (do
        freeMem html'
     )

data DOMRangeCreateContextualFragmentMethodInfo
instance (signature ~ (T.Text -> m WebKit2WebExtension.DOMDocumentFragment.DOMDocumentFragment), MonadIO m, IsDOMRange a) => O.MethodInfo DOMRangeCreateContextualFragmentMethodInfo a signature where
    overloadedMethod _ = dOMRangeCreateContextualFragment

-- method DOMRange::delete_contents
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMRange"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMRange", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : True
-- Skip return : False

foreign import ccall "webkit_dom_range_delete_contents" webkit_dom_range_delete_contents :: 
    Ptr DOMRange ->                         -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMRange"})
    Ptr (Ptr GError) ->                     -- error
    IO ()

{- |
/No description available in the introspection data./
-}
dOMRangeDeleteContents ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMRange a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMRange.DOMRange' -}
    -> m ()
    {- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
dOMRangeDeleteContents self = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    onException (do
        propagateGError $ webkit_dom_range_delete_contents self'
        touchManagedPtr self
        return ()
     ) (do
        return ()
     )

data DOMRangeDeleteContentsMethodInfo
instance (signature ~ (m ()), MonadIO m, IsDOMRange a) => O.MethodInfo DOMRangeDeleteContentsMethodInfo a signature where
    overloadedMethod _ = dOMRangeDeleteContents

-- method DOMRange::detach
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMRange"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMRange", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : True
-- Skip return : False

foreign import ccall "webkit_dom_range_detach" webkit_dom_range_detach :: 
    Ptr DOMRange ->                         -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMRange"})
    Ptr (Ptr GError) ->                     -- error
    IO ()

{- |
/No description available in the introspection data./
-}
dOMRangeDetach ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMRange a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMRange.DOMRange' -}
    -> m ()
    {- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
dOMRangeDetach self = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    onException (do
        propagateGError $ webkit_dom_range_detach self'
        touchManagedPtr self
        return ()
     ) (do
        return ()
     )

data DOMRangeDetachMethodInfo
instance (signature ~ (m ()), MonadIO m, IsDOMRange a) => O.MethodInfo DOMRangeDetachMethodInfo a signature where
    overloadedMethod _ = dOMRangeDetach

-- method DOMRange::expand
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMRange"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMRange", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "unit", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #gchar", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : True
-- Skip return : False

foreign import ccall "webkit_dom_range_expand" webkit_dom_range_expand :: 
    Ptr DOMRange ->                         -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMRange"})
    CString ->                              -- unit : TBasicType TUTF8
    Ptr (Ptr GError) ->                     -- error
    IO ()

{- |
/No description available in the introspection data./

@since 2.16
-}
dOMRangeExpand ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMRange a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMRange.DOMRange' -}
    -> T.Text
    {- ^ /@unit@/: A @/gchar/@ -}
    -> m ()
    {- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
dOMRangeExpand self unit = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    unit' <- textToCString unit
    onException (do
        propagateGError $ webkit_dom_range_expand self' unit'
        touchManagedPtr self
        freeMem unit'
        return ()
     ) (do
        freeMem unit'
     )

data DOMRangeExpandMethodInfo
instance (signature ~ (T.Text -> m ()), MonadIO m, IsDOMRange a) => O.MethodInfo DOMRangeExpandMethodInfo a signature where
    overloadedMethod _ = dOMRangeExpand

-- method DOMRange::extract_contents
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMRange"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMRange", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMDocumentFragment"}))
-- throws : True
-- Skip return : False

foreign import ccall "webkit_dom_range_extract_contents" webkit_dom_range_extract_contents :: 
    Ptr DOMRange ->                         -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMRange"})
    Ptr (Ptr GError) ->                     -- error
    IO (Ptr WebKit2WebExtension.DOMDocumentFragment.DOMDocumentFragment)

{- |
/No description available in the introspection data./
-}
dOMRangeExtractContents ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMRange a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMRange.DOMRange' -}
    -> m WebKit2WebExtension.DOMDocumentFragment.DOMDocumentFragment
    {- ^ __Returns:__ A 'GI.WebKit2WebExtension.Objects.DOMDocumentFragment.DOMDocumentFragment' /(Can throw 'Data.GI.Base.GError.GError')/ -}
dOMRangeExtractContents self = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    onException (do
        result <- propagateGError $ webkit_dom_range_extract_contents self'
        checkUnexpectedReturnNULL "dOMRangeExtractContents" result
        result' <- (newObject WebKit2WebExtension.DOMDocumentFragment.DOMDocumentFragment) result
        touchManagedPtr self
        return result'
     ) (do
        return ()
     )

data DOMRangeExtractContentsMethodInfo
instance (signature ~ (m WebKit2WebExtension.DOMDocumentFragment.DOMDocumentFragment), MonadIO m, IsDOMRange a) => O.MethodInfo DOMRangeExtractContentsMethodInfo a signature where
    overloadedMethod _ = dOMRangeExtractContents

-- method DOMRange::get_collapsed
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMRange"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMRange", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False

foreign import ccall "webkit_dom_range_get_collapsed" webkit_dom_range_get_collapsed :: 
    Ptr DOMRange ->                         -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMRange"})
    Ptr (Ptr GError) ->                     -- error
    IO CInt

{- |
/No description available in the introspection data./
-}
dOMRangeGetCollapsed ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMRange a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMRange.DOMRange' -}
    -> m ()
    {- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
dOMRangeGetCollapsed self = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    onException (do
        _ <- propagateGError $ webkit_dom_range_get_collapsed self'
        touchManagedPtr self
        return ()
     ) (do
        return ()
     )

data DOMRangeGetCollapsedMethodInfo
instance (signature ~ (m ()), MonadIO m, IsDOMRange a) => O.MethodInfo DOMRangeGetCollapsedMethodInfo a signature where
    overloadedMethod _ = dOMRangeGetCollapsed

-- method DOMRange::get_common_ancestor_container
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMRange"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMRange", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}))
-- throws : True
-- Skip return : False

foreign import ccall "webkit_dom_range_get_common_ancestor_container" webkit_dom_range_get_common_ancestor_container :: 
    Ptr DOMRange ->                         -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMRange"})
    Ptr (Ptr GError) ->                     -- error
    IO (Ptr WebKit2WebExtension.DOMNode.DOMNode)

{- |
/No description available in the introspection data./
-}
dOMRangeGetCommonAncestorContainer ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMRange a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMRange.DOMRange' -}
    -> m WebKit2WebExtension.DOMNode.DOMNode
    {- ^ __Returns:__ A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' /(Can throw 'Data.GI.Base.GError.GError')/ -}
dOMRangeGetCommonAncestorContainer self = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    onException (do
        result <- propagateGError $ webkit_dom_range_get_common_ancestor_container self'
        checkUnexpectedReturnNULL "dOMRangeGetCommonAncestorContainer" result
        result' <- (newObject WebKit2WebExtension.DOMNode.DOMNode) result
        touchManagedPtr self
        return result'
     ) (do
        return ()
     )

data DOMRangeGetCommonAncestorContainerMethodInfo
instance (signature ~ (m WebKit2WebExtension.DOMNode.DOMNode), MonadIO m, IsDOMRange a) => O.MethodInfo DOMRangeGetCommonAncestorContainerMethodInfo a signature where
    overloadedMethod _ = dOMRangeGetCommonAncestorContainer

-- method DOMRange::get_end_container
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMRange"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMRange", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}))
-- throws : True
-- Skip return : False

foreign import ccall "webkit_dom_range_get_end_container" webkit_dom_range_get_end_container :: 
    Ptr DOMRange ->                         -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMRange"})
    Ptr (Ptr GError) ->                     -- error
    IO (Ptr WebKit2WebExtension.DOMNode.DOMNode)

{- |
/No description available in the introspection data./
-}
dOMRangeGetEndContainer ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMRange a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMRange.DOMRange' -}
    -> m WebKit2WebExtension.DOMNode.DOMNode
    {- ^ __Returns:__ A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' /(Can throw 'Data.GI.Base.GError.GError')/ -}
dOMRangeGetEndContainer self = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    onException (do
        result <- propagateGError $ webkit_dom_range_get_end_container self'
        checkUnexpectedReturnNULL "dOMRangeGetEndContainer" result
        result' <- (newObject WebKit2WebExtension.DOMNode.DOMNode) result
        touchManagedPtr self
        return result'
     ) (do
        return ()
     )

data DOMRangeGetEndContainerMethodInfo
instance (signature ~ (m WebKit2WebExtension.DOMNode.DOMNode), MonadIO m, IsDOMRange a) => O.MethodInfo DOMRangeGetEndContainerMethodInfo a signature where
    overloadedMethod _ = dOMRangeGetEndContainer

-- method DOMRange::get_end_offset
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMRange"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMRange", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TLong)
-- throws : True
-- Skip return : False

foreign import ccall "webkit_dom_range_get_end_offset" webkit_dom_range_get_end_offset :: 
    Ptr DOMRange ->                         -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMRange"})
    Ptr (Ptr GError) ->                     -- error
    IO CLong

{- |
/No description available in the introspection data./
-}
dOMRangeGetEndOffset ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMRange a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMRange.DOMRange' -}
    -> m CLong
    {- ^ __Returns:__ A @/glong/@ /(Can throw 'Data.GI.Base.GError.GError')/ -}
dOMRangeGetEndOffset self = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    onException (do
        result <- propagateGError $ webkit_dom_range_get_end_offset self'
        touchManagedPtr self
        return result
     ) (do
        return ()
     )

data DOMRangeGetEndOffsetMethodInfo
instance (signature ~ (m CLong), MonadIO m, IsDOMRange a) => O.MethodInfo DOMRangeGetEndOffsetMethodInfo a signature where
    overloadedMethod _ = dOMRangeGetEndOffset

-- method DOMRange::get_start_container
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMRange"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMRange", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}))
-- throws : True
-- Skip return : False

foreign import ccall "webkit_dom_range_get_start_container" webkit_dom_range_get_start_container :: 
    Ptr DOMRange ->                         -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMRange"})
    Ptr (Ptr GError) ->                     -- error
    IO (Ptr WebKit2WebExtension.DOMNode.DOMNode)

{- |
/No description available in the introspection data./
-}
dOMRangeGetStartContainer ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMRange a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMRange.DOMRange' -}
    -> m WebKit2WebExtension.DOMNode.DOMNode
    {- ^ __Returns:__ A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' /(Can throw 'Data.GI.Base.GError.GError')/ -}
dOMRangeGetStartContainer self = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    onException (do
        result <- propagateGError $ webkit_dom_range_get_start_container self'
        checkUnexpectedReturnNULL "dOMRangeGetStartContainer" result
        result' <- (newObject WebKit2WebExtension.DOMNode.DOMNode) result
        touchManagedPtr self
        return result'
     ) (do
        return ()
     )

data DOMRangeGetStartContainerMethodInfo
instance (signature ~ (m WebKit2WebExtension.DOMNode.DOMNode), MonadIO m, IsDOMRange a) => O.MethodInfo DOMRangeGetStartContainerMethodInfo a signature where
    overloadedMethod _ = dOMRangeGetStartContainer

-- method DOMRange::get_start_offset
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMRange"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMRange", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TLong)
-- throws : True
-- Skip return : False

foreign import ccall "webkit_dom_range_get_start_offset" webkit_dom_range_get_start_offset :: 
    Ptr DOMRange ->                         -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMRange"})
    Ptr (Ptr GError) ->                     -- error
    IO CLong

{- |
/No description available in the introspection data./
-}
dOMRangeGetStartOffset ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMRange a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMRange.DOMRange' -}
    -> m CLong
    {- ^ __Returns:__ A @/glong/@ /(Can throw 'Data.GI.Base.GError.GError')/ -}
dOMRangeGetStartOffset self = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    onException (do
        result <- propagateGError $ webkit_dom_range_get_start_offset self'
        touchManagedPtr self
        return result
     ) (do
        return ()
     )

data DOMRangeGetStartOffsetMethodInfo
instance (signature ~ (m CLong), MonadIO m, IsDOMRange a) => O.MethodInfo DOMRangeGetStartOffsetMethodInfo a signature where
    overloadedMethod _ = dOMRangeGetStartOffset

-- method DOMRange::get_text
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMRange"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMRange", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TUTF8)
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_range_get_text" webkit_dom_range_get_text :: 
    Ptr DOMRange ->                         -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMRange"})
    IO CString

{- |
/No description available in the introspection data./
-}
dOMRangeGetText ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMRange a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMRange.DOMRange' -}
    -> m T.Text
    {- ^ __Returns:__ A @/gchar/@ -}
dOMRangeGetText self = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    result <- webkit_dom_range_get_text self'
    checkUnexpectedReturnNULL "dOMRangeGetText" result
    result' <- cstringToText result
    freeMem result
    touchManagedPtr self
    return result'

data DOMRangeGetTextMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsDOMRange a) => O.MethodInfo DOMRangeGetTextMethodInfo a signature where
    overloadedMethod _ = dOMRangeGetText

-- method DOMRange::insert_node
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMRange"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMRange", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "newNode", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMNode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : True
-- Skip return : False

foreign import ccall "webkit_dom_range_insert_node" webkit_dom_range_insert_node :: 
    Ptr DOMRange ->                         -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMRange"})
    Ptr WebKit2WebExtension.DOMNode.DOMNode -> -- newNode : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"})
    Ptr (Ptr GError) ->                     -- error
    IO ()

{- |
/No description available in the introspection data./
-}
dOMRangeInsertNode ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMRange a, WebKit2WebExtension.DOMNode.IsDOMNode b) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMRange.DOMRange' -}
    -> b
    {- ^ /@newNode@/: A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' -}
    -> m ()
    {- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
dOMRangeInsertNode self newNode = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    newNode' <- unsafeManagedPtrCastPtr newNode
    onException (do
        propagateGError $ webkit_dom_range_insert_node self' newNode'
        touchManagedPtr self
        touchManagedPtr newNode
        return ()
     ) (do
        return ()
     )

data DOMRangeInsertNodeMethodInfo
instance (signature ~ (b -> m ()), MonadIO m, IsDOMRange a, WebKit2WebExtension.DOMNode.IsDOMNode b) => O.MethodInfo DOMRangeInsertNodeMethodInfo a signature where
    overloadedMethod _ = dOMRangeInsertNode

-- method DOMRange::intersects_node
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMRange"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMRange", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "refNode", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMNode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False

foreign import ccall "webkit_dom_range_intersects_node" webkit_dom_range_intersects_node :: 
    Ptr DOMRange ->                         -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMRange"})
    Ptr WebKit2WebExtension.DOMNode.DOMNode -> -- refNode : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"})
    Ptr (Ptr GError) ->                     -- error
    IO CInt

{- |
/No description available in the introspection data./
-}
dOMRangeIntersectsNode ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMRange a, WebKit2WebExtension.DOMNode.IsDOMNode b) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMRange.DOMRange' -}
    -> b
    {- ^ /@refNode@/: A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' -}
    -> m ()
    {- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
dOMRangeIntersectsNode self refNode = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    refNode' <- unsafeManagedPtrCastPtr refNode
    onException (do
        _ <- propagateGError $ webkit_dom_range_intersects_node self' refNode'
        touchManagedPtr self
        touchManagedPtr refNode
        return ()
     ) (do
        return ()
     )

data DOMRangeIntersectsNodeMethodInfo
instance (signature ~ (b -> m ()), MonadIO m, IsDOMRange a, WebKit2WebExtension.DOMNode.IsDOMNode b) => O.MethodInfo DOMRangeIntersectsNodeMethodInfo a signature where
    overloadedMethod _ = dOMRangeIntersectsNode

-- method DOMRange::is_point_in_range
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMRange"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMRange", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "refNode", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMNode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "offset", argType = TBasicType TLong, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #glong", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False

foreign import ccall "webkit_dom_range_is_point_in_range" webkit_dom_range_is_point_in_range :: 
    Ptr DOMRange ->                         -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMRange"})
    Ptr WebKit2WebExtension.DOMNode.DOMNode -> -- refNode : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"})
    CLong ->                                -- offset : TBasicType TLong
    Ptr (Ptr GError) ->                     -- error
    IO CInt

{- |
/No description available in the introspection data./
-}
dOMRangeIsPointInRange ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMRange a, WebKit2WebExtension.DOMNode.IsDOMNode b) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMRange.DOMRange' -}
    -> b
    {- ^ /@refNode@/: A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' -}
    -> CLong
    {- ^ /@offset@/: A @/glong/@ -}
    -> m ()
    {- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
dOMRangeIsPointInRange self refNode offset = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    refNode' <- unsafeManagedPtrCastPtr refNode
    onException (do
        _ <- propagateGError $ webkit_dom_range_is_point_in_range self' refNode' offset
        touchManagedPtr self
        touchManagedPtr refNode
        return ()
     ) (do
        return ()
     )

data DOMRangeIsPointInRangeMethodInfo
instance (signature ~ (b -> CLong -> m ()), MonadIO m, IsDOMRange a, WebKit2WebExtension.DOMNode.IsDOMNode b) => O.MethodInfo DOMRangeIsPointInRangeMethodInfo a signature where
    overloadedMethod _ = dOMRangeIsPointInRange

-- method DOMRange::select_node
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMRange"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMRange", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "refNode", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMNode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : True
-- Skip return : False

foreign import ccall "webkit_dom_range_select_node" webkit_dom_range_select_node :: 
    Ptr DOMRange ->                         -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMRange"})
    Ptr WebKit2WebExtension.DOMNode.DOMNode -> -- refNode : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"})
    Ptr (Ptr GError) ->                     -- error
    IO ()

{- |
/No description available in the introspection data./
-}
dOMRangeSelectNode ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMRange a, WebKit2WebExtension.DOMNode.IsDOMNode b) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMRange.DOMRange' -}
    -> b
    {- ^ /@refNode@/: A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' -}
    -> m ()
    {- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
dOMRangeSelectNode self refNode = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    refNode' <- unsafeManagedPtrCastPtr refNode
    onException (do
        propagateGError $ webkit_dom_range_select_node self' refNode'
        touchManagedPtr self
        touchManagedPtr refNode
        return ()
     ) (do
        return ()
     )

data DOMRangeSelectNodeMethodInfo
instance (signature ~ (b -> m ()), MonadIO m, IsDOMRange a, WebKit2WebExtension.DOMNode.IsDOMNode b) => O.MethodInfo DOMRangeSelectNodeMethodInfo a signature where
    overloadedMethod _ = dOMRangeSelectNode

-- method DOMRange::select_node_contents
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMRange"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMRange", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "refNode", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMNode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : True
-- Skip return : False

foreign import ccall "webkit_dom_range_select_node_contents" webkit_dom_range_select_node_contents :: 
    Ptr DOMRange ->                         -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMRange"})
    Ptr WebKit2WebExtension.DOMNode.DOMNode -> -- refNode : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"})
    Ptr (Ptr GError) ->                     -- error
    IO ()

{- |
/No description available in the introspection data./
-}
dOMRangeSelectNodeContents ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMRange a, WebKit2WebExtension.DOMNode.IsDOMNode b) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMRange.DOMRange' -}
    -> b
    {- ^ /@refNode@/: A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' -}
    -> m ()
    {- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
dOMRangeSelectNodeContents self refNode = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    refNode' <- unsafeManagedPtrCastPtr refNode
    onException (do
        propagateGError $ webkit_dom_range_select_node_contents self' refNode'
        touchManagedPtr self
        touchManagedPtr refNode
        return ()
     ) (do
        return ()
     )

data DOMRangeSelectNodeContentsMethodInfo
instance (signature ~ (b -> m ()), MonadIO m, IsDOMRange a, WebKit2WebExtension.DOMNode.IsDOMNode b) => O.MethodInfo DOMRangeSelectNodeContentsMethodInfo a signature where
    overloadedMethod _ = dOMRangeSelectNodeContents

-- method DOMRange::set_end
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMRange"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMRange", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "refNode", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMNode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "offset", argType = TBasicType TLong, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #glong", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : True
-- Skip return : False

foreign import ccall "webkit_dom_range_set_end" webkit_dom_range_set_end :: 
    Ptr DOMRange ->                         -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMRange"})
    Ptr WebKit2WebExtension.DOMNode.DOMNode -> -- refNode : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"})
    CLong ->                                -- offset : TBasicType TLong
    Ptr (Ptr GError) ->                     -- error
    IO ()

{- |
/No description available in the introspection data./
-}
dOMRangeSetEnd ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMRange a, WebKit2WebExtension.DOMNode.IsDOMNode b) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMRange.DOMRange' -}
    -> b
    {- ^ /@refNode@/: A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' -}
    -> CLong
    {- ^ /@offset@/: A @/glong/@ -}
    -> m ()
    {- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
dOMRangeSetEnd self refNode offset = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    refNode' <- unsafeManagedPtrCastPtr refNode
    onException (do
        propagateGError $ webkit_dom_range_set_end self' refNode' offset
        touchManagedPtr self
        touchManagedPtr refNode
        return ()
     ) (do
        return ()
     )

data DOMRangeSetEndMethodInfo
instance (signature ~ (b -> CLong -> m ()), MonadIO m, IsDOMRange a, WebKit2WebExtension.DOMNode.IsDOMNode b) => O.MethodInfo DOMRangeSetEndMethodInfo a signature where
    overloadedMethod _ = dOMRangeSetEnd

-- method DOMRange::set_end_after
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMRange"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMRange", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "refNode", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMNode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : True
-- Skip return : False

foreign import ccall "webkit_dom_range_set_end_after" webkit_dom_range_set_end_after :: 
    Ptr DOMRange ->                         -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMRange"})
    Ptr WebKit2WebExtension.DOMNode.DOMNode -> -- refNode : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"})
    Ptr (Ptr GError) ->                     -- error
    IO ()

{- |
/No description available in the introspection data./
-}
dOMRangeSetEndAfter ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMRange a, WebKit2WebExtension.DOMNode.IsDOMNode b) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMRange.DOMRange' -}
    -> b
    {- ^ /@refNode@/: A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' -}
    -> m ()
    {- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
dOMRangeSetEndAfter self refNode = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    refNode' <- unsafeManagedPtrCastPtr refNode
    onException (do
        propagateGError $ webkit_dom_range_set_end_after self' refNode'
        touchManagedPtr self
        touchManagedPtr refNode
        return ()
     ) (do
        return ()
     )

data DOMRangeSetEndAfterMethodInfo
instance (signature ~ (b -> m ()), MonadIO m, IsDOMRange a, WebKit2WebExtension.DOMNode.IsDOMNode b) => O.MethodInfo DOMRangeSetEndAfterMethodInfo a signature where
    overloadedMethod _ = dOMRangeSetEndAfter

-- method DOMRange::set_end_before
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMRange"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMRange", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "refNode", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMNode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : True
-- Skip return : False

foreign import ccall "webkit_dom_range_set_end_before" webkit_dom_range_set_end_before :: 
    Ptr DOMRange ->                         -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMRange"})
    Ptr WebKit2WebExtension.DOMNode.DOMNode -> -- refNode : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"})
    Ptr (Ptr GError) ->                     -- error
    IO ()

{- |
/No description available in the introspection data./
-}
dOMRangeSetEndBefore ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMRange a, WebKit2WebExtension.DOMNode.IsDOMNode b) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMRange.DOMRange' -}
    -> b
    {- ^ /@refNode@/: A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' -}
    -> m ()
    {- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
dOMRangeSetEndBefore self refNode = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    refNode' <- unsafeManagedPtrCastPtr refNode
    onException (do
        propagateGError $ webkit_dom_range_set_end_before self' refNode'
        touchManagedPtr self
        touchManagedPtr refNode
        return ()
     ) (do
        return ()
     )

data DOMRangeSetEndBeforeMethodInfo
instance (signature ~ (b -> m ()), MonadIO m, IsDOMRange a, WebKit2WebExtension.DOMNode.IsDOMNode b) => O.MethodInfo DOMRangeSetEndBeforeMethodInfo a signature where
    overloadedMethod _ = dOMRangeSetEndBefore

-- method DOMRange::set_start
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMRange"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMRange", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "refNode", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMNode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "offset", argType = TBasicType TLong, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #glong", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : True
-- Skip return : False

foreign import ccall "webkit_dom_range_set_start" webkit_dom_range_set_start :: 
    Ptr DOMRange ->                         -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMRange"})
    Ptr WebKit2WebExtension.DOMNode.DOMNode -> -- refNode : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"})
    CLong ->                                -- offset : TBasicType TLong
    Ptr (Ptr GError) ->                     -- error
    IO ()

{- |
/No description available in the introspection data./
-}
dOMRangeSetStart ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMRange a, WebKit2WebExtension.DOMNode.IsDOMNode b) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMRange.DOMRange' -}
    -> b
    {- ^ /@refNode@/: A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' -}
    -> CLong
    {- ^ /@offset@/: A @/glong/@ -}
    -> m ()
    {- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
dOMRangeSetStart self refNode offset = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    refNode' <- unsafeManagedPtrCastPtr refNode
    onException (do
        propagateGError $ webkit_dom_range_set_start self' refNode' offset
        touchManagedPtr self
        touchManagedPtr refNode
        return ()
     ) (do
        return ()
     )

data DOMRangeSetStartMethodInfo
instance (signature ~ (b -> CLong -> m ()), MonadIO m, IsDOMRange a, WebKit2WebExtension.DOMNode.IsDOMNode b) => O.MethodInfo DOMRangeSetStartMethodInfo a signature where
    overloadedMethod _ = dOMRangeSetStart

-- method DOMRange::set_start_after
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMRange"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMRange", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "refNode", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMNode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : True
-- Skip return : False

foreign import ccall "webkit_dom_range_set_start_after" webkit_dom_range_set_start_after :: 
    Ptr DOMRange ->                         -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMRange"})
    Ptr WebKit2WebExtension.DOMNode.DOMNode -> -- refNode : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"})
    Ptr (Ptr GError) ->                     -- error
    IO ()

{- |
/No description available in the introspection data./
-}
dOMRangeSetStartAfter ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMRange a, WebKit2WebExtension.DOMNode.IsDOMNode b) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMRange.DOMRange' -}
    -> b
    {- ^ /@refNode@/: A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' -}
    -> m ()
    {- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
dOMRangeSetStartAfter self refNode = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    refNode' <- unsafeManagedPtrCastPtr refNode
    onException (do
        propagateGError $ webkit_dom_range_set_start_after self' refNode'
        touchManagedPtr self
        touchManagedPtr refNode
        return ()
     ) (do
        return ()
     )

data DOMRangeSetStartAfterMethodInfo
instance (signature ~ (b -> m ()), MonadIO m, IsDOMRange a, WebKit2WebExtension.DOMNode.IsDOMNode b) => O.MethodInfo DOMRangeSetStartAfterMethodInfo a signature where
    overloadedMethod _ = dOMRangeSetStartAfter

-- method DOMRange::set_start_before
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMRange"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMRange", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "refNode", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMNode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : True
-- Skip return : False

foreign import ccall "webkit_dom_range_set_start_before" webkit_dom_range_set_start_before :: 
    Ptr DOMRange ->                         -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMRange"})
    Ptr WebKit2WebExtension.DOMNode.DOMNode -> -- refNode : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"})
    Ptr (Ptr GError) ->                     -- error
    IO ()

{- |
/No description available in the introspection data./
-}
dOMRangeSetStartBefore ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMRange a, WebKit2WebExtension.DOMNode.IsDOMNode b) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMRange.DOMRange' -}
    -> b
    {- ^ /@refNode@/: A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' -}
    -> m ()
    {- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
dOMRangeSetStartBefore self refNode = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    refNode' <- unsafeManagedPtrCastPtr refNode
    onException (do
        propagateGError $ webkit_dom_range_set_start_before self' refNode'
        touchManagedPtr self
        touchManagedPtr refNode
        return ()
     ) (do
        return ()
     )

data DOMRangeSetStartBeforeMethodInfo
instance (signature ~ (b -> m ()), MonadIO m, IsDOMRange a, WebKit2WebExtension.DOMNode.IsDOMNode b) => O.MethodInfo DOMRangeSetStartBeforeMethodInfo a signature where
    overloadedMethod _ = dOMRangeSetStartBefore

-- method DOMRange::surround_contents
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMRange"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMRange", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "newParent", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMNode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : True
-- Skip return : False

foreign import ccall "webkit_dom_range_surround_contents" webkit_dom_range_surround_contents :: 
    Ptr DOMRange ->                         -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMRange"})
    Ptr WebKit2WebExtension.DOMNode.DOMNode -> -- newParent : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"})
    Ptr (Ptr GError) ->                     -- error
    IO ()

{- |
/No description available in the introspection data./
-}
dOMRangeSurroundContents ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMRange a, WebKit2WebExtension.DOMNode.IsDOMNode b) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMRange.DOMRange' -}
    -> b
    {- ^ /@newParent@/: A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' -}
    -> m ()
    {- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
dOMRangeSurroundContents self newParent = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    newParent' <- unsafeManagedPtrCastPtr newParent
    onException (do
        propagateGError $ webkit_dom_range_surround_contents self' newParent'
        touchManagedPtr self
        touchManagedPtr newParent
        return ()
     ) (do
        return ()
     )

data DOMRangeSurroundContentsMethodInfo
instance (signature ~ (b -> m ()), MonadIO m, IsDOMRange a, WebKit2WebExtension.DOMNode.IsDOMNode b) => O.MethodInfo DOMRangeSurroundContentsMethodInfo a signature where
    overloadedMethod _ = dOMRangeSurroundContents

-- method DOMRange::to_string
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMRange"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMRange", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TUTF8)
-- throws : True
-- Skip return : False

foreign import ccall "webkit_dom_range_to_string" webkit_dom_range_to_string :: 
    Ptr DOMRange ->                         -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMRange"})
    Ptr (Ptr GError) ->                     -- error
    IO CString

{- |
/No description available in the introspection data./
-}
dOMRangeToString ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMRange a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMRange.DOMRange' -}
    -> m T.Text
    {- ^ __Returns:__ A @/gchar/@ /(Can throw 'Data.GI.Base.GError.GError')/ -}
dOMRangeToString self = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    onException (do
        result <- propagateGError $ webkit_dom_range_to_string self'
        checkUnexpectedReturnNULL "dOMRangeToString" result
        result' <- cstringToText result
        freeMem result
        touchManagedPtr self
        return result'
     ) (do
        return ()
     )

data DOMRangeToStringMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsDOMRange a) => O.MethodInfo DOMRangeToStringMethodInfo a signature where
    overloadedMethod _ = dOMRangeToString