declare namespace imbacss {
    /** Represents elements whose numeric position in a series of siblings is odd 1, 3, 5, etc 
* @detail :nth-child(odd)
*/
    interface αodd { name: 'nth-child', valueType: 'string', value: 'odd' };

    /** Represents elements whose numeric position in a series of siblings is even 2, 4, 6, etc 
     * @detail :nth-child(even)
    */
    interface αeven { name: 'nth-child', valueType: 'string', value: 'even' };

    /** Represents the first element among a group of sibling elements
     * @detail :first-child
     */
    interface αfirst { name: 'first-child' }

    /** Represents the last element among a group of sibling elements 
     * @detail :last-child
    */
    interface αlast { name: 'last-child' };

    /** Represents an element without any siblings 
     * @detail :only-child
    */
    interface αonly { name: 'only-child' };

    /** Generally triggered when the user hovers over an element with the cursor (mouse pointer) */
    interface αhover { name: 'hover' };

    /** Element is being activated by the user. When using a mouse, "activation" typically starts when the user presses down the primary mouse button. */
    interface αactive { name: 'active' };

    interface αvisited { name: 'visited' };

    interface αlink { name: 'link' };

    interface αenabled { name: 'enabled' };

    interface αchecked { name: 'checked' };

    interface αinvalid { name: 'invalid' };

    interface αvalid { name: 'valid' };

    /** Element has focus */
    interface αfocus { name: 'focus' };

    /** Element OR descendant of element has focus */
    interface αfocin {};


    /** @detail (min-width: 480px) */
    interface αxs { media: '(min-width: 480px)' }
    /** @detail (min-width: 640px) */
    interface αsm { media: '(min-width: 640px)' }
    /** @detail (min-width: 768px) */
    interface αmd { media: '(min-width: 768px)' }
    /** @detail (min-width: 1024px) */
    interface αlg { media: '(min-width: 1024px)' }
    /** @detail (min-width: 1280px) */
    interface αxl { media: '(min-width: 1280px)' }
    /** @detail (min-width: 1536px) */
    interface α2xl { media: '(min-width: 1536px)' }

    /** @detail (max-width: 479px) */
    interface αltΞxs { media: '(max-width: 479px)' }
    /** @detail (max-width: 639px) */
    interface αltΞsm { media: '(max-width: 639px)' }
    /** @detail (max-width: 767px) */
    interface αltΞmd { media: '(max-width: 767px)' }
    /** @detail (max-width: 1023px) */
    interface αltΞlg { media: '(max-width: 1023px)' }
    /** @detail (max-width: 1279px) */
    interface αltΞxl { media: '(max-width: 1279px)' }
    /** @detail (max-width: 1535px) */
    interface αltΞ2xl { media: '(max-width: 1535px)' }

    // color modifiers

    /** Indicates that user has notified that they prefer an interface that has a dark theme. 
     * @detail (prefers-color-scheme: dark)
    */
    interface αdark { media: '(prefers-color-scheme: dark)' }

    /** Indicates that user has notified that they prefer an interface that has a light theme, or has not expressed an active preference. 
     * @detail (prefers-color-scheme: light)
    */
    interface αlight { media: '(prefers-color-scheme: light)' }
    
    /**
     * @custom
     * @summary Matches when a `@touch` handler is active for element
     */
    interface αtouch { flag: '@touch' }

    /**
     * @custom
     * @summary Matches when a `@touch.moved` modifier is active for element
     */
    interface αmove { flag: '@move' }
    
    /**
     * @custom
     * @summary Matches when a `@touch.hold` modifier is active for element
     */
    interface αhold { flag: '@hold' }
    
    /**
     * @custom
     * @summary Matches components rendered from server that are not hydrated
     */
    interface αssr { flag: '@ssr' }

    /**
     * @custom
     * @summary Matches when the element has been suspended (see imba.Component.suspend)
     */
     interface αsuspended { flag: '@suspended' }

    /** 
     * The viewport is in a landscape orientation, i.e., the width is greater than the height.
     * @detail (orientation: landscape)
     *  */
    interface αlandscape { media: '(orientation: landscape)' }

    /** 
     * The viewport is in a portrait orientation, i.e.,  the height is greater than or equal to the width.
     * @detail (orientation: portrait)
        */
    interface αportrait { media: '(orientation: portrait)' }

    /** 
     * @summary Intended for paged material and documents viewed on a screen in print preview mode. 
     * @detail (media: print)
    */
    interface αprint { media: 'print' }

    /**
     * @summary Intended primarily for screens.
     * @detail (media: screen)
    */
    interface αscreen { media: 'screen' }

    /** 
     * @summary Pseudo-element that is the first child of the selected element 
     * @detail ::before { ... }
     * @pseudoelement
    */
    interface αbefore { name: '::before' }

    /** 
     * @summary Pseudo-element that is the last child of the selected element 
     * @pseudoelement
     * @detail ::after { ... }
    */
    interface αafter { name: '::after' }
    
    /** 
     * @see [Transitions](https://imba.io/css/transitions)
     * @summary Target styles before entering / after leaving the dom
     * @custom
    */
     interface αoff { }

    /** 
     * @see [Transitions](https://imba.io/css/transitions)
     * @summary Initial styles for element entering the dom
     * @custom
    */
    interface αin { }

    /** 
     * @see [Transitions](https://imba.io/css/transitions)
     * @summary Target styles for element leaving the dom
     * @custom
    */
    interface αout { }

    

    /** 
     * @see [Transitions](https://imba.io/css/transitions)
     * @summary Matches when element is transitioning into the dom
     * @custom
    */
     interface αenter { }

    /** 
     * @see [Transitions](https://imba.io/css/transitions)
     * @summary Matches when element is transitioning out of the dom
     * @custom
    */
     interface αleave { }
}