import { Schedule, ScoutingSchedule } from '../types'; /** * Generate a map for teams to scout for each map. * @param {Schedule} schedule The schedule to scout. * @param options Options for the teams to scout. See {@link complex} for more information. * @returns A map from match number to an array of team numbers to scout for that match. */ export declare function teamsToScout(schedule: Schedule, options: { usTeams: number[]; scoutBeforePlay: number; endScout: number; skipStartScout: number; startScout: number; minScout: number; minScouterAtMatch: number; }): Map; /** * Assign scouters given the teams to scout. * @param {Schedule} schedule The {@link Schedule} to scout. * @param options Options for the scouters. See {@link complex} for more information. * @returns {ScoutingSchedule} The {@link ScoutingSchedule} with scouters assigned. */ export declare function assignScouters(schedule: Schedule, scouters: string[], teamsToScoutMap: Map, { softLimitMatchesInARow, hardLimitMatchesInARow, }: { softLimitMatchesInARow: number; hardLimitMatchesInARow: number; }): ScoutingSchedule; /** * * @param schedule The {@link Schedule} to scout. * @param scouters A list of scouters to use. * @param {Object} options Options for the scheduling & scouting assignment. * @param options.usTeams The teams we're scouting for. These teams will have every team in their matches scouted the `scoutBeforePlay` * times before the play with or against them. * @param options.softLimitMatchesInARow After the soft limit is reached, scouters will be rotated out of scouting if possible. However, * if more scouters are needed than have not reached the soft limit, these scouters can still be used. * @param options.hardLimitMatchesInARow After the hard limit is reached, scouters will be rotated out of scouting if possible. Even if * more scouters are needed than have not reached the hard limit, the scouters that have reached the hard limit will not be used. This * can result in teams which should be scouted in a match not being scouted. * @param options.scoutBeforePlay The number of matches to scout before a team plays with or against a team in `usTeams`. * @param options.endScout The last `endScout` matches for each team will be scouted. * @param options.skipStartScout The number of matches to skip before starting to scout `startScout` matches. * @param options.startScout The number of matches to scout after skipping `skipStartScout` matches. * @param options.minScout The minimum number of times a team should be scouted. * @param options.minScouterAtMatch The minimum number of scouters that should be at each match. This is useful if you want somebody to * be watching each match, even if the other parameters don't cause any of the teams in it to be scouted. * @returns The {@link ScoutingSchedule} with scouters assigned. */ export default function complex(schedule: Schedule, scouters: string[], options: { usTeams: number[]; softLimitMatchesInARow: number; hardLimitMatchesInARow: number; scoutBeforePlay: number; endScout: number; skipStartScout: number; startScout: number; minScout: number; minScouterAtMatch: number; }): ScoutingSchedule;