Your IP : 216.73.216.240


Current Path : /home/juvelize/saulnois/libraries/ic_library/Vendor/Icalcreator/src/
Upload File :
Current File : /home/juvelize/saulnois/libraries/ic_library/Vendor/Icalcreator/src/IcalInterface.php

<?php
/**
 * iCalcreator, the PHP class package managing iCal (rfc2445/rfc5445) calendar information.
 *
 * This file is a part of iCalcreator.
 *
 * @author    Kjell-Inge Gustafsson, kigkonsult <ical@kigkonsult.se>
 * @copyright 2007-2023 Kjell-Inge Gustafsson, kigkonsult AB, All rights reserved
 * @link      https://kigkonsult.se
 * @license   Subject matter of licence is the software iCalcreator.
 *            The above copyright, link, package and version notices,
 *            this licence notice and the invariant [rfc5545] PRODID result use
 *            as implemented and invoked in iCalcreator shall be included in
 *            all copies or substantial portions of the iCalcreator.
 *
 *            iCalcreator is free software: you can redistribute it and/or modify
 *            it under the terms of the GNU Lesser General Public License as
 *            published by the Free Software Foundation, either version 3 of
 *            the License, or (at your option) any later version.
 *
 *            iCalcreator is distributed in the hope that it will be useful,
 *            but WITHOUT ANY WARRANTY; without even the implied warranty of
 *            MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 *            GNU Lesser General Public License for more details.
 *
 *            You should have received a copy of the GNU Lesser General Public License
 *            along with iCalcreator. If not, see <https://www.gnu.org/licenses/>.
 */
declare( strict_types = 1 );
namespace Kigkonsult\Icalcreator;

/**
 * interface IcalInterface
 *
 * @since  2.41.21 - 2022-02-19
 */
interface IcalInterface
{
    /**
     * Class constants, components
     */
    public const VTIMEZONE        = 'Vtimezone';
    public const STANDARD         = 'Standard';
    public const DAYLIGHT         = 'Daylight';
    public const VEVENT           = 'Vevent';
    public const VTODO            = 'Vtodo';
    public const VJOURNAL         = 'Vjournal';
    public const VFREEBUSY        = 'Vfreebusy';
    public const VALARM           = 'Valarm';
    /*  rfc9073 component names */
    public const PARTICIPANT      = 'Participant';
    public const VLOCATION        = 'Vlocation';
    public const VRESOURCE        = 'Vresource';
    /*  rfc7953 component names */
    public const VAVAILABILITY    = 'Vavailability';
    public const AVAILABLE        = 'Available';

    /**
     * Class constants, iCal component property names
     */
    public const ACTION             = 'ACTION';
    public const ATTACH             = 'ATTACH';
    public const ATTENDEE           = 'ATTENDEE';
    public const CALSCALE           = 'CALSCALE';
    public const CATEGORIES         = 'CATEGORIES';
    public const KLASS              = 'CLASS';        // note CLASS
    public const COMMENT            = 'COMMENT';
    public const COMPLETED          = 'COMPLETED';
    public const CONTACT            = 'CONTACT';
    public const CREATED            = 'CREATED';
    public const DESCRIPTION        = 'DESCRIPTION';
    public const DTEND              = 'DTEND';
    public const DTSTAMP            = 'DTSTAMP';
    public const DTSTART            = 'DTSTART';
    public const DUE                = 'DUE';
    public const DURATION           = 'DURATION';
    public const EXDATE             = 'EXDATE';
    public const EXRULE             = 'EXRULE';
    public const FREEBUSY           = 'FREEBUSY';
    public const GEO                = 'GEO';
    public const GEOLOCATION        = 'GEOLOCATION';
    public const LAST_MODIFIED      = 'LAST-MODIFIED';
    public const LOCATION           = 'LOCATION';
    public const METHOD             = 'METHOD';
    public const ORGANIZER          = 'ORGANIZER';
    public const PERCENT_COMPLETE   = 'PERCENT-COMPLETE';
    public const PRIORITY           = 'PRIORITY';
    public const PRODID             = 'PRODID';
    public const RECURRENCE_ID      = 'RECURRENCE-ID';
    public const RELATED_TO         = 'RELATED-TO';
    public const REPEAT             = 'REPEAT';
    public const REQUEST_STATUS     = 'REQUEST-STATUS';
    public const RESOURCES          = 'RESOURCES';
    public const RDATE              = 'RDATE';
    public const RRULE              = 'RRULE';
    public const SEQUENCE           = 'SEQUENCE';
    public const STATUS             = 'STATUS';
    public const SUMMARY            = 'SUMMARY';
    public const TRANSP             = 'TRANSP';
    public const TRIGGER            = 'TRIGGER';
    public const TZID               = 'TZID';
    public const TZID_ALIAS_OF      = 'TZID-ALIAS-OF';
    public const TZNAME             = 'TZNAME';
    public const TZOFFSETFROM       = 'TZOFFSETFROM';
    public const TZOFFSETTO         = 'TZOFFSETTO';
    public const TZUNTIL            = 'TZUNTIL';
    public const TZURL              = 'TZURL';
    public const UID                = 'UID';
    public const URL                = 'URL';
    public const VERSION            = 'VERSION';
    public const X_PROP             = 'X-PROP';

    /**
     * Class constants, iCal rfc7986 property names
     */
    public const COLOR              = 'COLOR';
    public const CONFERENCE         = 'CONFERENCE';
    public const IMAGE              = 'IMAGE';
    public const NAME               = 'NAME';
    public const REFRESH_INTERVAL   = 'REFRESH-INTERVAL';
    public const SOURCE             = 'SOURCE';

    /**
     * Class constants, iCal rfc9073 property names
     */
    public const CALENDAR_ADDRESS   = 'CALENDAR-ADDRESS';
    public const LOCATION_TYPE      = 'LOCATION-TYPE';
    public const PARTICIPANT_TYPE   = 'PARTICIPANT-TYPE';
    public const RESOURCE_TYPE      = 'RESOURCE-TYPE';
    public const STYLED_DESCRIPTION = 'STYLED-DESCRIPTION';
    public const STRUCTURED_DATA    = 'STRUCTURED-DATA';

    /**
     * Class constants, iCal rfc7953 property names
     */
    public const BUSYTYPE           = 'BUSYTYPE';

    /**
     * Class constants, iCal rfc9074 property names
     */
    public const ACKNOWLEDGED       = 'ACKNOWLEDGED';
    public const PROXIMITY          = 'PROXIMITY';

    /**
     * iCal property METHOD types
     */
    public const PUBLISH            = 'PUBLISH';
    public const REQUEST            = 'REQUEST';
    public const REPLY              = 'REPLY';
    public const ADD                = 'ADD';
    public const CANCEL             = 'CANCEL';
    public const REFRESH            = 'REFRESH';
    public const COUNTER            = 'COUNTER';
    public const DECLINECOUNTER     = 'DECLINECOUNTER';

    /**
     * iCal property CALSCALE default value
     */
    public const GREGORIAN          = 'GREGORIAN';

    /**
     * iCal global component parameter keywords
     */
    public const ALTREP             = 'ALTREP';           // Alternate Text Representation
    public const DERIVED            = 'DERIVED';          // rfc9073 : DESCRIPTION/STYLED-DESCRIPTION
    public const LANGUAGE           = 'LANGUAGE';         // values defined in [RFC5646]
    public const VALUE              = 'VALUE';
    public const SCHEMA             = 'SCHEMA';           // rfc9073 : STRUCTURED-DATA

    /**
     * iCal component properties VALUE parameter key values
     *
     * DURATION, set above,                      // TRIGGERtrait
     */
    public const BINARY             = 'BINARY';
    public const BOOLEAN            = 'BOOLEAN';
    public const CAL_ADDRESS        = 'CAL_ADDRESS';
    public const DATE               = 'DATE';             // YYYYMMDD
    public const DATE_TIME          = 'DATE-TIME';        // YYYYMMDDTHHMMDD[Z/timezone]
    public const FLOAT              = 'FLOAT';
    public const INTEGER            = 'INTEGER';
    public const PERIOD             = 'PERIOD';           // date-time / date-time  or  date-time / dur-value
    public const RECUR              = 'RECUR';
    public const TEXT               = 'TEXT';
    public const TIME               = 'TIME';             // HHMMSS
    public const URI                = 'URI';              // Section 3 of [RFC3986]
    public const UTC_OFFSET         = 'UTC-OFFSET';       // ("+" / "-") time-hour time-minute [time-second

    /**
     * (rfc9073) opt x-params keys
     */
    public const X_PARTICIPANTID    = 'X-PARTICIPANTID';  // In Attendee with Participant UID value
    public const X_PARTICIPANT_TYPE = 'X-PARTICIPANT-TYPE';  // In Attendee with Participant PARTICIPANT_TYPE value
    public const X_VLOCATIONID      = 'X-VLOCATIONID';    // In Location with Vlocation UID value
    public const X_LOCATION_TYPE    = 'X-LOCATION-TYPE';  // In Location with Vlocation LOCATION_TYPE value
    public const X_VRESOURCEID      = 'X-VRESOURCEID';    // In Resource with Vresource UID value
    public const X_RESOURCE_TYPE    = 'X-RESOURCE-TYPE';  // In Resource with Vresource RESOURCE_TYPE value

    /**
     * iCal component properties ATTENDEE/ORGANIZER parameter keywords
     */
    public const CUTYPE             = 'CUTYPE';           // Calendar User Type
    public const MEMBER             = 'MEMBER';           // Group or List Membership
    public const ROLE               = 'ROLE';             // Participation Role
    public const PARTSTAT           = 'PARTSTAT';         // Participation Status
    public const RSVP               = 'RSVP';             // 'reply expected'
    public const DELEGATED_TO       = 'DELEGATED-TO';     // Delegatees
    public const DELEGATED_FROM     = 'DELEGATED-FROM';   // Delegators
    public const SENT_BY            = 'SENT-BY';
    public const CN                 = 'CN';               // Common name
    public const DIR                = 'DIR';              // Directory Entry Reference

    /**
     * iCal component properties ATTENDEE/ORGANIZER CUTYPE parameter key values
     */
    public const GROUP              = 'GROUP';
    public const INDIVIDUAL         = 'INDIVIDUAL';       // (default)
    public const RESOURCE           = 'RESOURCE';
    public const ROOM               = 'ROOM';
    public const UNKNOWN            = 'UNKNOWN';

    /**
     * iCal component properties ATTENDEE PARTSTAT parameter key values
     *
     * COMPLETED, Vtodo, set above
     */
    public const NEEDS_ACTION       = 'NEEDS-ACTION';     // Vevent, Vtodo, Vjournal (default)
    public const ACCEPTED           = 'ACCEPTED';         // Vevent, Vtodo, Vjournal
    public const DECLINED           = 'DECLINED';         // Vevent, Vtodo, Vjournal
    public const TENTATIVE          = 'TENTATIVE';        // Vevent, Vtodo
    public const DELEGATED          = 'DELEGATED';        // Vevent, Vtodo
    public const IN_PROCESS         = 'IN-PROCESS';       // Vtodo

    /**
     * iCal component properties ATTENDEE ROLE parameter keywords
     */
    public const CHAIR              = 'CHAIR';
    public const REQ_PARTICIPANT    = 'REQ-PARTICIPANT';   // (default)
    public const OPT_PARTICIPANT    = 'OPT-PARTICIPANT';
    public const NON_PARTICIPANT    = 'NON-PARTICIPANT';

    /**
     * iCal component property param value, VALUE=BOOLEAN, ex ATTENDEE  param key RSVP
     */
    public const FALSE              = 'FALSE';
    public const TRUE               = 'TRUE';

    /**
     * iCal component properties RRULE, EXRULE 'RECUR' keywords
     */
    public const FREQ               = 'FREQ';
    public const UNTIL              = 'UNTIL';
    public const COUNT              = 'COUNT';
    public const INTERVAL           = 'INTERVAL';
    public const BYSECOND           = 'BYSECOND';
    public const BYMINUTE           = 'BYMINUTE';
    public const BYHOUR             = 'BYHOUR';
    public const BYDAY              = 'BYDAY';
    public const BYMONTHDAY         = 'BYMONTHDAY';
    public const BYYEARDAY          = 'BYYEARDAY';
    public const BYWEEKNO           = 'BYWEEKNO';
    public const BYMONTH            = 'BYMONTH';
    public const BYSETPOS           = 'BYSETPOS';
    public const WKST               = 'WKST';
    public const SECONDLY           = 'SECONDLY';         // FREQ value
    public const MINUTELY           = 'MINUTELY';         // FREQ value
    public const HOURLY             = 'HOURLY';           // FREQ value
    public const DAILY              = 'DAILY';            // FREQ value
    public const WEEKLY             = 'WEEKLY';           // FREQ value
    public const MONTHLY            = 'MONTHLY';          // FREQ value
    public const YEARLY             = 'YEARLY';           // FREQ value
    public const DAY                = 'DAY';
    public const SU                 = 'SU';               // SUNDAY
    public const MO                 = 'MO';               // MONDAY
    public const TU                 = 'TU';               // TUESDAY
    public const WE                 = 'WE';               // WEDNESDAY
    public const TH                 = 'TH';               // THURSDAY
    public const FR                 = 'FR';               // FRIDAY
    public const SA                 = 'SA';               // SATURDAY
    /*  rfc7529 component names RRULE, EXRULE 'RECUR' keywords and values */
    public const RSCALE             = 'RSCALE';
    public const SKIP               = 'SKIP';
    public const OMIT               = 'OMIT';
    public const BACKWARD           = 'BACKWARD';
    public const FORWARD            = 'FORWARD';

    /**
     * iCal component property ACTION, IMAGE values
     */
    public const AUDIO              = 'AUDIO';
    public const DISPLAY            = 'DISPLAY';
    public const EMAIL              = 'EMAIL';
    public const PROCEDURE          = 'PROCEDURE';        // Deprecated in rfc5545

    /**
     * iCal component property IMAGE parameter key DISPLAY values
     */
    public const BADGE              = 'BADGE';          // default
    public const GRAPHIC            = 'GRAPHIC';
    public const FULLSIZE           = 'FULLSIZE';
    public const THUMBNAIL          = 'THUMBNAIL';

    /**
     * iCal component property ATTACH, IMAGE parameter keywords
     *
     * VALUE, defined above
     */
    public const ENCODING           = 'ENCODING';         // Inline Encoding
    public const FMTTYPE            = 'FMTTYPE';          // (Inline ) Format Type (media type [RFC4288])

    /**
     * iCal component property CONFERENCE parameter keywords
     *
     * VALUE, defined above
     */
    public const FEATURE            = 'FEATURE';
    public const LABEL              = 'LABEL';

    /**
     * iCal component property CONFERENCE parameter key FEATURE values
     *
     * AUDIO, defined above
     */
    public const CHAT               = 'CHAT';
    public const FEED               = 'FEED';
    public const MODERATOR          = 'MODERATOR';
    public const PHONE              = 'PHONE';
    public const SCREEN             = 'SCREEN';
    public const VIDEO              = 'VIDEO';

    /**
     * iCal component property ATTACH, IMAGE parameter key ENCODING values
     */
    public const EIGHTBIT           = '8BIT';             // e.i 8BIT...
    public const BASE64             = 'BASE64';

    /**
     * iCal component property CLASS values
     */
    public const P_BLIC             = 'PUBLIC';           // note PUBLIC
    public const P_IVATE            = 'PRIVATE';          // note PRIVATE
    public const CONFIDENTIAL       = 'CONFIDENTIAL';

    /**
     * iCal component property FREEBUZY parameter keyword
     */
    public const FBTYPE             = 'FBTYPE';           // Free/Busy Time Type

    /**
     * iCal component property FREEBUZY parameter key FBTYPE values
     *
     * iCal rfc7953 VAVAILABILITY component property BUSYTYPE values, all but 'FREE'
     */
    public const FREE               = 'FREE';
    public const BUSY               = 'BUSY';
    public const BUSY_UNAVAILABLE   = 'BUSY-UNAVAILABLE';
    public const BUSY_TENTATIVE     = 'BUSY-TENTATIVE';

    /**
     * iCal component property RECURRENCE-ID parameter keyword
     */
    public const RANGE              = 'RANGE';            // Recurrence Identifier Range

    /**
     * iCal component property RECURRENCE-ID parameter key value
     */
    public const THISANDFUTURE      = 'THISANDFUTURE';    // RANGE value


    /**
     * iCal component property RELATED-TO parameter keyword
     */
    public const RELTYPE            = 'RELTYPE';          //  Relationship Type

    /**
     * iCal component property RELATED-TO parameter key RELTYPE value
     */
    public const PARENT             = 'PARENT';           // (default)
    public const CHILD              = 'CHILD';
    public const SIBLING            = 'SIBLING';
    public const SNOOZE             = 'SNOOZE';           // rfc9074 Valarm

    /**
     * iCal component property TRIGGER parameter keyword
     */
    public const RELATED            = 'RELATED';

    /**
     * iCal component property TRIGGER parameter key TRIGGER values
     */
    public const START              = 'START';
    public const END                = 'END';

    /**
     * iCal component property GEO parts
     */
    public const LATITUDE           = 'latitude';
    public const LONGITUDE          = 'longitude';

    /**
     * iCal component rfc9073 property PARTICIPANT-TYPE parts
     *
     * CONTACT, defined above
     */
    public const ORDER              = 'ORDER';
    public const ACTIVE             = 'ACTIVE';
    public const INACTIVE           = 'INACTIVE';
    public const SPONSOR            = 'SPONSOR';
    public const BOOKING_CONTACT    = 'BOOKING-CONTACT';
    public const EMERGENCY_CONTACT  = 'EMERGENCY-CONTACT';
    public const PUBLICITY_CONTACT  = 'PUBLICITY-CONTACT';
    public const PLANNER_CONTACT    = 'PLANNER-CONTACT';
    public const PERFORMER          = 'PERFORMER';
    public const SPEAKER            = 'SPEAKER';

    /**
     * iCal component property Request-status  parts
     */
    public const STATCODE           = 'statcode';
    public const STATDESC           = 'statdesc';
    public const EXTDATA            = 'extdata';

    /**
     * iCal component property STATUS values
     *
     * NEEDS_ACTION, defined above               // Vtodo
     * TENTATIVE, defined above                  // Vevent
     * COMPLETED, defined above                  // Vtodo
     * IN_PROCESS                                // Vtodo
     */
    public const CONFIRMED          = 'CONFIRMED';        // Vevent
    public const CANCELLED          = 'CANCELLED';        // Vevent, Vtodo, Vjournal
    public const DRAFT              = 'DRAFT';            // Vjournal
    public const F_NAL              = 'FINAL';            // Vjournal

    /**
     * iCal component property TRANSP values
     */
    public const OPAQUE             = 'OPAQUE';           // default
    public const TRANSPARENT        = 'TRANSPARENT';

    /**
     * iCal Valarm component property PROXIMITY values
     */
    public const ARRIVE             = 'ARRIVE';
    public const DEPART             = 'DEPART';
    public const CONNECT            = 'CONNECT';
    public const DISCONNECT         = 'DISCONNECT';

    /**
     * iCal Vresource component property RESOURCE-TYPE values
     *
     * ROOM, defined above               // ATTENDEE/ORGANIZER CUTYPE parameter
     */
    public const PROJECTOR          = 'PROJECTOR';
    public const REMOTE_CONFERENCE_AUDIO = 'REMOTE-CONFERENCE-AUDIO';
    public const REMOTE_CONFERENCE_VIDEO = 'REMOTE-CONFERENCE-VIDEO';

    /**
     * UTC DateTimezones
     */
    public const Z                  = 'Z';
    public const UTC                = 'UTC';
    public const GMT                = 'GMT';

    /**
     * Calendar extension x-properties, some...
     * @link http://en.wikipedia.org/wiki/ICalendar#Calendar_extensions
     */
    public const X_WR_CALNAME       = 'X-WR-CALNAME';
    public const X_WR_CALDESC       = 'X-WR-CALDESC';
    public const X_WR_RELCALID      = 'X-WR-RELCALID';
    public const X_WR_TIMEZONE      = 'X-WR-TIMEZONE';
    public const X_LIC_LOCATION     = 'X-LIC-LOCATION';

    /**
     * Vcalendar::selectComponents() added component x-property names
     */
    public const X_CURRENT_DTSTART  = 'X-CURRENT-DTSTART';
    public const X_CURRENT_DTEND    = 'X-CURRENT-DTEND';
    public const X_CURRENT_DUE      = 'X-CURRENT-DUE';
    public const X_RECURRENCE       = 'X-RECURRENCE';
    public const X_OCCURENCE        = 'X-OCCURENCE';

    /**
     * Class constants, config keys
     *
     * LANGUAGE set above
     */
    public const ALLOWEMPTY         = 'ALLOWEMPTY';
    public const COMPSINFO          = 'COMPSINFO';
    public const ISLOCALTIME        = 'ISLOCALTIME';
    public const PROPINFO           = 'PROPINFO';
    public const SETPROPERTYNAMES   = 'SETPROPERTYNAMES';
    public const UNIQUE_ID          = 'UNIQUE_ID';
}