export declare enum Command {
    SPLIT_MESSAGE = 16,
    MESSAGE_SIZES = 53,
    GAME_START = 54,
    PRE_FRAME_UPDATE = 55,
    POST_FRAME_UPDATE = 56,
    GAME_END = 57,
    FRAME_START = 58,
    ITEM_UPDATE = 59,
    FRAME_BOOKEND = 60,
    GECKO_LIST = 61,
    FOD_PLATFORM = 63,
    WHISPY = 64,
    STADIUM_TRANSFORMATION = 65
}
export type PlayerType = {
    playerIndex: number;
    port: number;
    characterId: number | null;
    type: number | null;
    startStocks: number | null;
    characterColor: number | null;
    teamShade: number | null;
    handicap: number | null;
    teamId: number | null;
    staminaMode: boolean | null;
    silentCharacter: boolean | null;
    invisible: boolean | null;
    lowGravity: boolean | null;
    blackStockIcon: boolean | null;
    metal: boolean | null;
    startOnAngelPlatform: boolean | null;
    rumbleEnabled: boolean | null;
    cpuLevel: number | null;
    offenseRatio: number | null;
    defenseRatio: number | null;
    modelScale: number | null;
    controllerFix: string | null;
    nametag: string | null;
    displayName: string;
    connectCode: string;
    userId: string;
};
export declare enum GameMode {
    VS = 2,
    ONLINE = 8,
    TARGET_TEST = 15,
    HOME_RUN_CONTEST = 32
}
export declare enum Language {
    JAPANESE = 0,
    ENGLISH = 1
}
export type GameStartType = {
    slpVersion: string | null;
    timerType: TimerType | null;
    inGameMode: number | null;
    friendlyFireEnabled: boolean | null;
    isTeams: boolean | null;
    stageId: number | null;
    startingTimerSeconds: number | null;
    itemSpawnBehavior: ItemSpawnType | null;
    enabledItems: number | null;
    players: PlayerType[];
    scene: number | null;
    gameMode: GameMode | null;
    language: Language | null;
    gameInfoBlock: GameInfoType | null;
    randomSeed: number | null;
    isPAL: boolean | null;
    isFrozenPS: boolean | null;
    matchInfo: MatchInfo | null;
};
type MatchInfo = {
    matchId: string | null;
    gameNumber: number | null;
    tiebreakerNumber: number | null;
};
export type FrameStartType = {
    frame: number | null;
    seed: number | null;
    sceneFrameCounter: number | null;
};
export type GameInfoType = {
    gameBitfield1: number | null;
    gameBitfield2: number | null;
    gameBitfield3: number | null;
    gameBitfield4: number | null;
    bombRainEnabled: boolean | null;
    selfDestructScoreValue: number | null;
    itemSpawnBitfield1: number | null;
    itemSpawnBitfield2: number | null;
    itemSpawnBitfield3: number | null;
    itemSpawnBitfield4: number | null;
    itemSpawnBitfield5: number | null;
    damageRatio: number | null;
};
export declare enum TimerType {
    NONE = 0,
    DECREASING = 2,
    INCREASING = 3
}
export declare enum ItemSpawnType {
    OFF = 255,
    VERY_LOW = 0,
    LOW = 1,
    MEDIUM = 2,
    HIGH = 3,
    VERY_HIGH = 4
}
export declare enum EnabledItemType {
    METAL_BOX = 1,
    CLOAKING_DEVICE = 2,
    POKEBALL = 4,
    UNKNOWN_ITEM_BIT_4 = 8,
    UNKNOWN_ITEM_BIT_5 = 16,
    UNKNOWN_ITEM_BIT_6 = 32,
    UNKNOWN_ITEM_BIT_7 = 64,
    UNKNOWN_ITEM_BIT_8 = 128,
    FAN = 256,
    FIRE_FLOWER = 512,
    SUPER_MUSHROOM = 1024,
    POISON_MUSHROOM = 2048,
    HAMMER = 4096,
    WARP_STAR = 8192,
    SCREW_ATTACK = 16384,
    BUNNY_HOOD = 32768,
    RAY_GUN = 65536,
    FREEZIE = 131072,
    FOOD = 262144,
    MOTION_SENSOR_BOMB = 524288,
    FLIPPER = 1048576,
    SUPER_SCOPE = 2097152,
    STAR_ROD = 4194304,
    LIPS_STICK = 8388608,
    HEART_CONTAINER = 16777216,
    MAXIM_TOMATO = 33554432,
    STARMAN = 67108864,
    HOME_RUN_BAT = 134217728,
    BEAM_SWORD = 268435456,
    PARASOL = 536870912,
    GREEN_SHELL = 1073741824,
    RED_SHELL = 2147483648,
    CAPSULE = 4294967296,
    BOX = 8589934592,
    BARREL = 17179869184,
    EGG = 34359738368,
    PARTY_BALL = 68719476736,
    BARREL_CANNON = 137438953472,
    BOMB_OMB = 274877906944,
    MR_SATURN = 549755813888
}
export type PreFrameUpdateType = {
    frame: number | null;
    playerIndex: number | null;
    isFollower: boolean | null;
    seed: number | null;
    actionStateId: number | null;
    positionX: number | null;
    positionY: number | null;
    facingDirection: number | null;
    joystickX: number | null;
    joystickY: number | null;
    cStickX: number | null;
    cStickY: number | null;
    trigger: number | null;
    buttons: number | null;
    physicalButtons: number | null;
    physicalLTrigger: number | null;
    physicalRTrigger: number | null;
    rawJoystickX: number | null;
    percent: number | null;
};
export type PostFrameUpdateType = {
    frame: number | null;
    playerIndex: number | null;
    isFollower: boolean | null;
    internalCharacterId: number | null;
    actionStateId: number | null;
    positionX: number | null;
    positionY: number | null;
    facingDirection: number | null;
    percent: number | null;
    shieldSize: number | null;
    lastAttackLanded: number | null;
    currentComboCount: number | null;
    lastHitBy: number | null;
    stocksRemaining: number | null;
    actionStateCounter: number | null;
    miscActionState: number | null;
    isAirborne: boolean | null;
    lastGroundId: number | null;
    jumpsRemaining: number | null;
    lCancelStatus: number | null;
    hurtboxCollisionState: number | null;
    selfInducedSpeeds: SelfInducedSpeedsType | null;
    hitlagRemaining: number | null;
    animationIndex: number | null;
    instanceHitBy: number | null;
    instanceId: number | null;
};
export type SelfInducedSpeedsType = {
    airX: number | null;
    y: number | null;
    attackX: number | null;
    attackY: number | null;
    groundX: number | null;
};
export type ItemUpdateType = {
    frame: number | null;
    typeId: number | null;
    state: number | null;
    facingDirection: number | null;
    velocityX: number | null;
    velocityY: number | null;
    positionX: number | null;
    positionY: number | null;
    damageTaken: number | null;
    expirationTimer: number | null;
    spawnId: number | null;
    missileType: number | null;
    turnipFace: number | null;
    chargeShotLaunched: number | null;
    chargePower: number | null;
    owner: number | null;
    instanceId: number | null;
};
export type FrameBookendType = {
    frame: number | null;
    latestFinalizedFrame: number | null;
};
export declare enum GameEndMethod {
    UNRESOLVED = 0,
    RESOLVED = 3,
    TIME = 1,
    GAME = 2,
    NO_CONTEST = 7
}
export type GameEndType = {
    gameEndMethod: GameEndMethod | null;
    lrasInitiatorIndex: number | null;
    placements: PlacementType[];
};
export type PlacementType = {
    playerIndex: number;
    position: number | null;
};
export type GeckoListType = {
    codes: GeckoCodeType[];
    contents: Uint8Array;
};
export type GeckoCodeType = {
    type: number | null;
    address: number | null;
    contents: Uint8Array;
};
export declare enum FodPlatformSide {
    RIGHT = 0,
    LEFT = 1
}
export type FodPlatformType = {
    frame: number | null;
    platform: FodPlatformSide | null;
    height: number | null;
};
export declare enum WhispyBlowDirection {
    NONE = 0,
    LEFT = 1,
    RIGHT = 2
}
export type WhispyType = {
    frame: number | null;
    direction: WhispyBlowDirection | null;
};
export declare enum StadiumTransformation {
    FIRE = 3,
    GRASS = 4,
    NORMAL = 5,
    ROCK = 6,
    WATER = 9
}
export declare enum StadiumTransformationEvent {
    INITIATE = 2,
    ON_MONITOR = 3,
    RECEDING = 4,
    RISING = 5,
    FINISH = 6
}
export type StadiumTransformationType = {
    frame: number | null;
    event: StadiumTransformationEvent | null;
    transformation: StadiumTransformation | null;
};
export type MetadataType = {
    startAt?: string | null;
    playedOn?: string | null;
    lastFrame?: number | null;
    players?: {
        [playerIndex: number]: {
            characters: {
                [internalCharacterId: number]: number;
            };
            names?: {
                netplay?: string | null;
                code?: string | null;
            };
        };
    } | null;
    consoleNick?: string | null;
};
export type EventPayloadTypes = GameStartType | FrameStartType | PreFrameUpdateType | PostFrameUpdateType | ItemUpdateType | FrameBookendType | GameEndType | GeckoListType | FodPlatformType | WhispyType | StadiumTransformationType;
export type EventCallbackFunc = (command: Command, payload?: EventPayloadTypes | null, buffer?: Uint8Array | null) => boolean;
export type StageEventTypes = FodPlatformType | WhispyType | StadiumTransformationType;
export type FrameEntryType = {
    frame: number;
    start?: FrameStartType;
    players: {
        [playerIndex: number]: {
            pre: PreFrameUpdateType;
            post: PostFrameUpdateType;
        } | null;
    };
    followers: {
        [playerIndex: number]: {
            pre: PreFrameUpdateType;
            post: PostFrameUpdateType;
        } | null;
    };
    items?: ItemUpdateType[];
    stageEvents?: StageEventTypes[];
};
export declare enum Frames {
    FIRST = -123,
    FIRST_PLAYABLE = -39
}
export type FramesType = {
    [frameIndex: number]: FrameEntryType;
};
export type RollbackFramesType = {
    [frameIndex: number]: FrameEntryType[];
};
export type RollbackFrames = {
    frames: RollbackFramesType;
    count: number;
    lengths: number[];
};
export {};
//# sourceMappingURL=types.d.ts.map